MySQL 8 + 正则表达式单词边界
MySQL 8 + Regex Word Boundaries
我想在单词的开头或结尾搜索术语 'ed',以下 SQL 语句仅匹配完全匹配的单词。
SELECT * FROM ul_product
where productname REGEXP '\bed\b'
如果我执行以下操作,它会得到结果,其中 ed 位于单词的开头或结尾
SELECT * FROM ul_product
where productname REGEXP '(\bed)|(ed\b)'
这是它应该的工作方式吗?
单词边界的描述和在线示例使我相信陈述 1 会产生陈述 2 的结果。
我可以使用我为 'exact' 和 'partial' 匹配创建的语句,但这样对吗?
正则表达式 '\bed\b'
按单词边界搜索 'ed'
surrounded - 换句话说,它搜索 word 'ed'
.
在另一端,正则表达式:'(\bed)|(ed\b)'
搜索 '\bed'
或 'ed\b'
(竖线字符在正则表达式中代表“或”)。所以它匹配单词开头的 'ed'
或单词结尾的 - 这似乎是你想要的。
请注意,此处不需要括号。你可以这样写:
where productname REGEXP '\bed|ed\b'
我想在单词的开头或结尾搜索术语 'ed',以下 SQL 语句仅匹配完全匹配的单词。
SELECT * FROM ul_product
where productname REGEXP '\bed\b'
如果我执行以下操作,它会得到结果,其中 ed 位于单词的开头或结尾
SELECT * FROM ul_product
where productname REGEXP '(\bed)|(ed\b)'
这是它应该的工作方式吗?
单词边界的描述和在线示例使我相信陈述 1 会产生陈述 2 的结果。
我可以使用我为 'exact' 和 'partial' 匹配创建的语句,但这样对吗?
正则表达式 '\bed\b'
按单词边界搜索 'ed'
surrounded - 换句话说,它搜索 word 'ed'
.
在另一端,正则表达式:'(\bed)|(ed\b)'
搜索 '\bed'
或 'ed\b'
(竖线字符在正则表达式中代表“或”)。所以它匹配单词开头的 'ed'
或单词结尾的 - 这似乎是你想要的。
请注意,此处不需要括号。你可以这样写:
where productname REGEXP '\bed|ed\b'