我有一个问题,我猜是否有更好的方法来实现我的目标。我在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%'
我想知道的是有一个运算符执行此操作,或者至少,如果该运算符不存在,则是编写查询的更好方法。
感谢大家帮助我。
答案 0 :(得分:1)
将值放在表格中(Params
),然后使用
SELECT *
FROM table
WHERE EXISTS (
SELECT *
FROM Params
WHERE table.field LIKE '%' + Params.col + '%'
);
还要考虑将通配符放入Params
表中的值。