Mysql将逗号分隔字段与单个字符串进行比较

Mysql将逗号分隔字段与单个字符串进行比较,mysql,comparison,Mysql,Comparison,因此,数据库中名为schools的字段的值可能为: '13,121,112,1212' 我用它来表示可能会犯错误 假设我在该字段中查找12。逗号表示“整数”,我不想匹配112或1212 还有比这更优雅的搭配吗 @compare = 12; WHERE CONCAT(schools,',') LIKE CONCAT('%',compare,',%) 我最近对GROUP_CONCAT函数印象深刻,但这与此相反。谢谢 对于这个简单的情况,您可以使用 请注意,尽管对于使用逗号分隔的文本的列没有很好的

因此,数据库中名为schools的字段的值可能为:

'13,121,112,1212'
我用它来表示可能会犯错误

假设我在该字段中查找
12
。逗号表示“整数”,我不想匹配112或1212

还有比这更优雅的搭配吗

@compare = 12;
WHERE CONCAT(schools,',') LIKE CONCAT('%',compare,',%)

我最近对GROUP_CONCAT函数印象深刻,但这与此相反。谢谢

对于这个简单的情况,您可以使用


请注意,尽管对于使用逗号分隔的文本的列没有很好的索引,但是查询速度要比标准化数据库慢得多。

对于这个简单的例子,您可以使用


请注意,尽管对于使用逗号分隔的文本的列没有很好的索引,但是查询速度要比标准化数据库慢得多。

SELECT*FROM。。。其中在集合中查找(@compare,school)>0
SELECT*FROM。。。在集合中查找(@compare,school)>0的位置
WHERE FIND_IN_SET('13', schools);