Mysql 正则表达式从字符串中搜索数字

Mysql 正则表达式从字符串中搜索数字,mysql,regex,numeric,Mysql,Regex,Numeric,这个问题对你来说可能很简单。我正在使用mysql regexp statment 我的查询是 select * from contents where categories regexp '{myPattern}'; 类别字段区域54,25,99,4,2。。。等字符串 我的问题是如何从“类别”字段中仅找到“4”的数量 对不起我的英语。 请帮帮我。 更好的做法是在自己的表中使用类别规范化您的db方案,然后将这些表连接在一起m:n匹配“字符串中包含'4'作为值的任何cvs字符串”的方法是: my

这个问题对你来说可能很简单。我正在使用mysql regexp statment

我的查询是

select * from contents where categories regexp '{myPattern}';
类别字段区域
54,25,99,4,2
。。。等字符串

我的问题是如何从“类别”字段中仅找到“4”的数量

对不起我的英语。 请帮帮我。

更好的做法是在自己的表中使用类别规范化您的db方案,然后将这些表连接在一起m:n

匹配“字符串中包含'4'作为值的任何cvs字符串”的方法是:

mycolumn regexp'[[::]]
在mysql正则表达式中,
[[[::]]
表示“单词的结尾”。

您可以使用:

where categories RLIKE '(^|,)4($|,)';

类别
包含
4
,后跟
或无,前面是
或无时,这将匹配。

knittl的解决方案看起来更好;)是的-我在发帖后检查过,有一种方法。修改后显示它谢谢你,奈特尔,当我只搜索4和2时,它是什么意思?你是什么意思
FIND_IN_SET('4',categories)>0和FIND_IN_SET('2',categories)>0
要同时查找这两个类别,请使用
查找任何categorygreat。但是我的查询4,2,54等等。我用它来查找集合('X',类别)中的每一个数字?还有其他简单的方法吗?我不明白你的意思。如果要同时检查42个类别,则必须在查询中放入42个检查。除此之外,您还希望它如何工作?
where categories RLIKE '(^|,)4($|,)';