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'