我有一个 SQL 查询可以返回我需要的结果,但是我在将其转换为“Rails方式”的活动记录查询时遇到了麻烦。
我的 SQL 查询如下:
SELECT * from trips
WHERE trips.title LIKE "%Thailand%"
AND EXISTS (SELECT * from places WHERE places.trip_id = trips.id AND places.name LIKE "%Bangkok%")
AND EXISTS (SELECT * from places WHERE places.trip_id = trips.id AND places.name LIKE "%Phuket%")
我正在尝试使用Rails做类似这样的事情:
@trips=Trip.where("trips.title LIKE ?", "%Thailand%")
@trips=@trips.includes(:places).where(("places.name LIKE ?","%Bangkok%").exists?) => true, ("places.name LIKE ?","%Phuket%").exists?) => true)
但是似乎没有起作用,我不知道该尝试什么。
LIKE
,您可能想查看http://stackoverflow.com/questions/30042146/make-search-not-case-sensitive-on-my-rails-app/30042240#30042240,因为`LIKE`在不同的数据库中的行为是不同的(尽管这不是您在此查询中遇到问题的原因 - 只是一个快速的警告)。 - rdnewman