我有一个产品表,其中包含一个名为“类别”的字段,用于将产品相关类别ID保存为逗号分隔值。我正在使用正则表达式来搜索某个类别的产品。
假设有包含4,24,1,31
的记录
我的表达是,
..WHERE categories REGEXP ',?4,?'
但这会返回类别4
和24
我只需要显示类别4
。
我错过了什么吗?
答案 0 :(得分:8)
使用
WHERE categories REGEXP "(^|,)4(,|$)"
如果用逗号或字符串的开头/结尾包围,则匹配4
。
在您目前的版本中,两个逗号都是完全可选的,因此4
中的24
匹配。