mysql 检查给定字符串是否在逗号分隔列表中,没有 FIND_IN_SET

标签 mysql find-in-set

SELECT * FROM TABLE_NAME WHERE 'string' in ('string1','string2','string3')

它没有给出正确的结果 find_in_set 只给出了准确的结果。如果有任何方法可以在不使用 find_in_set

的情况下获得正确的结果

最佳答案

SELECT * FROM TABLE_NAME WHERE 'string' in ('string1','string2','string3');

在上面的查询中,string 应该是一个字段(列),因此,如果您要让此查询工作,它将不带单引号 ' ,像这样:

SELECT * FROM TABLE_NAME WHERE string IN ('string1','string2','string3');

这将返回字段 string 恰好为 string1string2string3 的所有行。

<小时/>

现在,如果您想在字段 string 中查询诸如“string”之类的不完全匹配的值,那么您可以使用 LIKE operator :

SELECT * FROM TABLE_NAME WHERE string LIKE '%string%';

在上面的查询中,将返回包含 string1string2string3 的所有 3 条记录。

关于mysql 检查给定字符串是否在逗号分隔列表中,没有 FIND_IN_SET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52055111/

相关文章:

php - Mysqli num_rows( ) 返回未定义的属性

PHP CodeIgniter : My code to delete database data is not working correctly, 你能发现这个问题吗?

MySQL - FIND_IN_SET 用于逗号分隔的字段值

php - 使用 Doctrine 2 的 QueryBuilder 创建复杂查询

php - PDO 查询不起作用

php - 在 mysql 中搜索多个值

mysql - FIND_IN_SET 在列上?是否有意义?

mysql - 从逗号分隔值查询结果并查询要显示的每个值

mysql - 使用group_concat更新mysql表

MySQL ORDER By one Specific value in column (具有逗号分隔值)