8

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

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

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

但这会返回类别的产品424

我只需要显示 category 4

我错过了什么吗?

4

1 回答 1

12

采用

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

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

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

于 2012-09-24T06:29:50.363 回答