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

Oli*_*ams 1 mysql comparison

因此,数据库中名为 school 的字段可能具有以下值:

'13,121,112,1212'
Run Code Online (Sandbox Code Playgroud)

我用它来显示出错的可能性。

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

还有比这更优雅的搭配吗?

@compare = 12;
WHERE CONCAT(schools,',') LIKE CONCAT('%',compare,',%)
Run Code Online (Sandbox Code Playgroud)

最近 GROUP_CONCAT 函数给我留下了深刻的印象,但这恰恰相反。谢谢!

Joa*_*son 5

对于这个简单的情况,您可以使用FIND_IN_SET();

WHERE FIND_IN_SET('13', schools);
Run Code Online (Sandbox Code Playgroud)

请注意,虽然有与逗号列中没有很好的索引分隔文本,所以查询将是比规范化的数据库慢。