这个问题对你来说可能很简单。我正在使用mysql regexp语句。
myQuery是
select * from contents where categories regexp '{myPattern}';
类别字段区域54,25,99,4,2
...等字符串。
我的问题如何才能从类别字段中找到“4”的数字。
抱歉我的英语。 请帮帮我。答案 0 :(得分:6)
… WHERE FIND_IN_SET('4', categories) > 0
更好的做法是使用自己的表中的类别规范化db方案,然后将这些表连接在一起m:n
答案 1 :(得分:1)
匹配“包含'4'的任何cvs字符串作为字符串中的值”的方法是:
mycolumn regexp '[[:<:]]4[[:>:]]'
在mysql正则表达式中,[[:<:]]
表示“单词开头”,[[:>:]]
表示“单词结束”。
答案 2 :(得分:0)
您可以使用:
where categories RLIKE '(^|,)4($|,)';
当categories
包含4
,后跟,
或任何内容,并且先于,
或没有任何内容时,此匹配将匹配。