我有一列可能的a,b,c
和city
。Mysql:在逗号分隔列表中查找特定字母
它们中的一个,多个或全部可能在逗号分隔的每一行上出现。
我正在试图做一个查询,我查找所有包含c
而不是city
的行。
我试过LIKE %c%
和LIKE c
但不会返回正确的结果。我开始关注Regexp,但感觉好像必须有更好的解决方案。
对此有何看法?
我有一列可能的a,b,c
和city
。Mysql:在逗号分隔列表中查找特定字母
它们中的一个,多个或全部可能在逗号分隔的每一行上出现。
我正在试图做一个查询,我查找所有包含c
而不是city
的行。
我试过LIKE %c%
和LIKE c
但不会返回正确的结果。我开始关注Regexp,但感觉好像必须有更好的解决方案。
对此有何看法?
使用FIND_IN_SET
匹配逗号分隔值:
select * from TableName where FIND_IN_SET("c", column)
如果该列也是SET类型,则可以获得更好的性能。 –
这个作品,谢谢! – Xavio
'LIKE '%C%',而不是像 '%城市%''?这就是你需要的吗? –
所以你想要什么像'%c%'而不是'%city%''? –
不要。规范化数据库,列中的逗号分隔值几乎总是反模式。 –