【发布时间】:2018-12-12 16:31:27
【问题描述】:
如何在sql查询中动态添加条件
例如,如果我有一个元素,那么它看起来像
query=['one_element']
User.where('name LIKE ?, %"#{query[0]}"%')
但如果不止一个
User.where('name LIKE ? and LIKE ? and Like... , %"#{query}"%', ..so on)
我用myslq
所以我的主要目标是拆分搜索查询,如果它包含超过 2 个单词并在一个 sql 查询中分别搜索它们
not where(name:'john dou') but where(name:'john' and name:'dou')
【问题讨论】:
-
下面的两位响应者都回答了,为您提供了一种通过“OR”组合条件生成 SQL 的方法。但是您上面的示例使用“AND”来组合条件。只是在我回答之前确认一下:你真的想要这里使用“AND”运算符吗?例如,您是否希望 "WHERE name LIKE '%erky%' AND name LIKE '%eef%'" 匹配 name = "beef jerky" 的记录,但不匹配 name = "beef" 或 name = "jerky" 的记录“?
标签: mysql sql ruby-on-rails