在PHP MySQL中从逗号分隔的字符串中查找确切的值

时间:2012-09-24 06:27:13

标签: php mysql regex

我有一个产品表,其中包含一个名为“类别”的字段,用于将产品相关类别ID保存为逗号分隔值。我正在使用正则表达式来搜索某个类别的产品。

假设有包含4,24,1,31的记录 我的表达是,

..WHERE categories REGEXP ',?4,?'

但这会返回类别424

的产品

我只需要显示类别4

我错过了什么吗?

1 个答案:

答案 0 :(得分:8)

使用

WHERE categories REGEXP "(^|,)4(,|$)"

如果用逗号或字符串的开头/结尾包围,则匹配4

在您目前的版本中,两个逗号都是完全可选的,因此4中的24匹配。