加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 如何使用正则表达式完全匹配MySQL中的记录?

发布时间:2020-12-13 16:13:43 所属栏目:PHP教程 来源:网络整理
导读:我正在制作一个使用独特slu to来识别文章的新闻系统.在创建新文章时,我需要确保该独特的slug尚未使用.因此,如果两篇文章具有完全相同的名称,则它们将生成完全相同的slug.我想在它正在使用的情况下在slug的末尾添加一个数字. 像这样: 一些非常有趣的文章 一
我正在制作一个使用独特slu to来识别文章的新闻系统.在创建新文章时,我需要确保该独特的slug尚未使用.因此,如果两篇文章具有完全相同的名称,则它们将生成完全相同的slug.我想在它正在使用的情况下在slug的末尾添加一个数字.

像这样:

>一些非常有趣的文章
>一些非常有趣的文章-1
>一些非常有趣的文章-2

等等.因此,在我的测试用例中,我选择的数据库中的所有记录都与“一些非常有趣的文章”完全匹配,并带有0或更多“-number”.因此,在这种情况下,我将返回3行,因此下一个slug将是“some-really-interesting-article-3”.

除了我的正则表达式行为特殊(或者可能非常正常,我只是吮吸正则表达式)并且还返回具有部分匹配的行时,这很有效.因此,如果我搜索“有些非常有趣”,那就会过去.

SELECT id,title,slug
FROM news 
WHERE slug RLIKE '([[:<:]]some-really-interesting-article[[:>:]][-d]*)'

正如我所说的,如果我运行上面的正则表达式“有些非常有趣”,它将返回所有3行.

请告诉我,我公然无知地做错了.谢谢.

解决方法

那这个呢 ?

"^some-really-interesting-article(-[[:digit:]]+)?$"

希望这会工作:)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读