我有一个问题,我想知道是否有更好的方法来实现我的目标。我在 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%'
我想知道的是有一个运算符可以执行此操作,或者至少,如果该运算符不存在,还有一种更好的方法来编写查询。
感谢所有帮助我的人。
最佳答案
将值放入表中(Params
)然后使用
SELECT *
FROM table
WHERE EXISTS (
SELECT *
FROM Params
WHERE table.field LIKE '%' + Params.col + '%'
);
还可以考虑将通配符放入 Params
表中的值中。
关于mysql - "Merge"Mysql中的IN和LIKE操作符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7752650/