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

整个单词与MySQL中的点字符匹配

发布时间:2020-12-11 23:52:34 所属栏目:MySql教程 来源:网络整理
导读:在MySQL中,当在需要“全字匹配”的文本字段中搜索关键字时,可以使用REGEXP和[[:lt ;:]]和[[:>:]]字边界标记: SELECT name FROM tbl_name WHERE name REGEXP "[[: 例如,当我们想要查找包含“europe”的所有文本字段时,使用 SELECT name FROM tbl_name WHE

在MySQL中,当在需要“全字匹配”的文本字段中搜索关键字时,可以使用REGEXP和[[:&lt ;:]]和[[:>:]]字边界标记:

SELECT name FROM tbl_name WHERE name REGEXP "[[:<:]]word[[:>:]]"

例如,当我们想要查找包含“europe”的所有文本字段时,使用

SELECT name FROM tbl_name WHERE name REGEXP "[[:<:]]europe[[:>:]]"

将返回“欧洲地图”,而不是“欧洲联盟”.

但是,当目标匹配单词包含“点字符”时,如“u.s.”,我该如何提交正确的查询?我尝试了以下查询,但没有一个看起来正确.

1.

SELECT name FROM tbl_name WHERE name REGEXP "[[:<:]]u.s.[[:>:]]"

2.

SELECT name FROM tbl_name WHERE name REGEXP "[[:<:]]u[.]s[.][[:>:]]"

3.

SELECT name FROM tbl_name WHERE name REGEXP "[[:<:]]u.s.[[:>:]]"

当使用双反斜杠来逃避特殊字符时,正如d’alar’cop所建议的那样,它返回空,即使表中有“u.s. congress”之类的内容

SELECT name FROM tbl_name WHERE name REGEXP "[[:<:]]u.s.[[:>:]]"

任何建议表示赞赏! 最佳答案 这个正则表达式做你想要的:

SELECT name
FROM tbl_name
WHERE name REGEXP '([[:blank:][:punct:]]|^)u[.]s[.]([[:punct:][:blank:]]|$)'

这匹配美国.以下时间:

>空白(空格,标签等)
>标点符号(逗号,括号等)
>什么都没有(即在行首)

然后是:

>空白(空格,括号等)
>什么都没有(即在行尾)

查看包含上述点的边缘情况的SQLFiddle.

(编辑:李大同)

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

    推荐文章
      热点阅读