在Mysql中“合并”IN和LIKE运算符

时间:2011-10-13 10:19:43

标签: mysql sql database sql-like in-operator

我有一个问题,我猜是否有更好的方法来实现我的目标。我在Mysql中有这个查询来检索一些行:

SELECT *
FROM table
WHERE field IN ('V','S','G','B')

我想要做的是运行一个查询,该查询检索字段的值与IN列表中的值相似的行。我知道琐碎的方法是使用这个查询:

SELECT *
FROM table
WHERE field LIKE '%V%' OR field LIKE '%S%' OR
      field LIKE '%G%' OR field LIKE '%B%'

我想知道的是有一个运算符执行此操作,或者至少,如果该运算符不存在,则是编写查询的更好方法。

感谢大家帮助我。

1 个答案:

答案 0 :(得分:1)

将值放在表格中(Params),然后使用

SELECT *
  FROM table
 WHERE EXISTS (
               SELECT * 
                 FROM Params
                WHERE table.field LIKE '%' + Params.col + '%'
              );

还要考虑将通配符放入Params表中的值。