2013-07-09 46 views
0

我有一列可能的a,b,ccityMysql:在逗号分隔列表中查找特定字母

它们中的一个,多个或全部可能在逗号分隔的每一行上出现。

我正在试图做一个查询,我查找所有包含c而不是city的行。


我试过LIKE %c%LIKE c但不会返回正确的结果。我开始关注Regexp,但感觉好像必须有更好的解决方案。

对此有何看法?

+2

'LIKE '%C%',而不是像 '%城市%''?这就是你需要的吗? –

+0

所以你想要什么像'%c%'而不是'%city%''? –

+2

不要。规范化数据库,列中的逗号分隔值几乎总是反模式。 –

回答

1

使用FIND_IN_SET匹配逗号分隔值:

select * from TableName where FIND_IN_SET("c", column) 
+2

如果该列也是SET类型,则可以获得更好的性能。 –

+0

这个作品,谢谢! – Xavio