【问题标题】:mysql check if given string are in a comma separated list without FIND_IN_SETmysql 检查给定的字符串是否在没有 FIND_IN_SET 的逗号分隔列表中
【发布时间】:2018-08-28 09:59:26
【问题描述】:
SELECT * FROM TABLE_NAME WHERE 'string' in ('string1','string2','string3')

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

的情况下获得正确的结果

【问题讨论】:

标签: mysql find-in-set


【解决方案1】:

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

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

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

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


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

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

在上面的查询中,包含string1string2string3的3条记录都会被返回。

【讨论】:

  • 在我的情况下,我不能使用 '%like%',因为我的字符串就像 ('a','aa','aaa')。因此,如果我输入“%aa%”,它会返回 aa,aaa
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-25
  • 2021-09-15
  • 1970-01-01
  • 1970-01-01
  • 2014-03-16
相关资源
最近更新 更多