gpt4 book ai didi

mysql - 在字符串中查找精确匹配的正则表达式可以在其他地方使用,但不能在 MySql 查询上使用

转载 作者:行者123 更新时间:2023-11-29 15:20:13 30 4
gpt4 key购买 nike

给定的字符串是逗号分隔的值,例如下面的字符串

29,30,31,32,33,34,35,36,192,225,228,233,239,240,144,145

我想找到字符串中任何数字的完全匹配,我确实编写了一个正则表达式来找到它。当我检查regex101时,效果很好。但是当我在 MySql Query 上编写相同的正则表达式时,它不起作用

(SELECT * FROM table_name WHERE (value REGEXP '.*\b22\b,{0,1}.*')

我确实找到了另一个有效的查询,它使用了 concat() 函数。

SELECT * FROM table_name WHERE CONCAT(',',value,',') like '%,22,%'

编辑:@anubhava 的答案也有效(可以在这个问题的第一条评论中找到)。由于我只能选择一个答案作为“已解决”,因此我只是想让其他人知道。

再次感谢

最佳答案

在您的 MySQL 版本上,最可能的字边界由 [[:<:]] 表示。和[[:>:]] :

SELECT *
FROM table_name
WHERE value REGEXP '[[:<:]]22[[:>:]]';

我相信从MySQL 8+开始,可以使用更标准的\b来表示单词边界。检查下面的演示链接以查看它在 MySQL 5.7 上的工作情况。

Demo

关于mysql - 在字符串中查找精确匹配的正则表达式可以在其他地方使用,但不能在 MySql 查询上使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59420318/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com