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

发布于 2024-12-01 23:29:28 字数 254 浏览 0 评论 0原文

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

myQuery 是

select * from contents where categories regexp '{myPattern}';

类别字段区域 54,25,99,4,2... 等字符串。

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

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

this question maybe very simple for you. i'm using mysql regexp statment.

myQuery is

select * from contents where categories regexp '{myPattern}';

categories field area 54,25,99,4,2... etc string.

my question how can i find only number of '4' from categories field.

sorry for my english.
help me please.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

孤独患者 2024-12-08 23:29:28

... WHERE FIND_IN_SET('4 ',类别)> 0

更好的是使用自己的表中的类别标准化您的数据库方案,然后将这些表连接在一起 m:n

… WHERE FIND_IN_SET('4', categories) > 0

better yet to normalize your db scheme with categories in their own table and then join these tables together m:n

为人所爱 2024-12-08 23:29:28

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

mycolumn regexp '[[:<:]]4[[:>:]]' 

在mysql正则表达式中,[[:<:]]表示“单词开头”,[[:>:]] 表示“词尾”。

The way to match "any cvs string containing '4' as a value in the string" is:

mycolumn regexp '[[:<:]]4[[:>:]]' 

In mysql regex, [[:<:]] means "start of word" and [[:>:]] means "end of word".

把时间冻结 2024-12-08 23:29:28

您可以使用它:

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

categories 包含 4 后跟 , 或什么都没有,前面是 , 时,这将匹配代码> 或什么也没有。

You can use this:

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

This will match when categories contains 4, followed by a , or nothing, and precedeed by , or nothing.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文