如何将第一个示例结果应用于第二个示例?
1)Rails模型中的不区分大小写的搜索结果
self.where("LOWER(shop_name) like ?", "%#{search.downcase}%")
2)高级搜索
shops =Shop.where("shop_name LIKE '%#{keywords}%' AND shop_city LIKE '%#{keywords2}%' AND shop_country LIKE '%#{keywords3}%' AND market_type LIKE '%#{keywords4}%'") if keywords||keywords2||keywords3||keywords4.present?
答案 0 :(得分:0)
我解决了这个问题
shops =Shop.where("LOWER(shop_name) LIKE '%#{keywords.downcase}%' AND LOWER(shop_city) LIKE '%#{keywords2.downcase}%' AND LOWER(shop_country) LIKE '%#{keywords3.downcase}%' AND LOWER(market_type) LIKE '%#{keywords4.downcase}%'") if keywords.downcase||keywords2.downcase||keywords3.downcase||keywords4.downcase.present?
请告诉我这是对还是
答案 1 :(得分:0)
为了避免错误更改你的if和2)替换||通过&&
shops =Shop.where("shop_name LIKE '%#{keywords}%' AND shop_city LIKE '%#{keywords2}%' AND shop_country LIKE '%#{keywords3}%' AND market_type LIKE '%#{keywords4}%'") if keywords && keywords2 && keywords3 && keywords4
您可能已经知道或者您需要知道此请求处理速度非常慢
答案 2 :(得分:0)
我拆分你的代码以确定你真正想要的是什么
query = ''
query << 'LOWER(shop_name) LIKE :keywords '
query << 'AND LOWER(shop_city) LIKE :keywords2 '
query << 'AND LOWER(shop_country) LIKE :keywords3 '
query << 'AND LOWER(market_type) LIKE :keywords4'
shops = Shop.where(
query,
keywords: keywords.downcase || '',
keywords2: keywords2.downcase || '',
keywords3: keywords3.downcase || '',
keywords4: keywords4.downcase || '',
) unless keywords.blank? && keyword2.blank? && keywords3.blank? && keywords4.blank?