mysql - "Merge"Mysql中的IN和LIKE操作符

标签 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%'

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

感谢所有帮助我的人。

最佳答案

将值放入表中(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/

相关文章:

连接到 SQLITE 数据库的 PHP PDO

mysql - 使用多个变量收集 MySQL 数据

sql - WebMatrix - 美国日期/时间格式被证明是一个问题

php - 匹配日期时间不显示结果

mysql - MYSQL 编码中的 INTERSECT 不起作用

sql - 在主键字段中选择具有最大值的行的最快方法

MYSQL JOIN 如果字段不为空

sql - 父子关系 : multiple tables vs. 自连接

php - WordPress 永久链接更改引发 500 内部服务器错误

php - 如何在 mysql php 中使用 IN OPERATOR 删除所有行