REGEXP 正则表达式匹配, 不能识别 [[:<:]], [[:>:]]这样的单词定界符

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】V6.6.0
【遇到的问题:问题现象及影响】
执行SQL语句: SELECT ‘a word a’ REGEXP ‘[[:<:]]word[[:>:]]’;
报错: SQL 错误 [1105] [HY000]: error parsing regexp: invalid character class range: [:<:]
而在mysql 5.7 中执行正确:
mysql> SELECT ‘a word a’ REGEXP ‘[[:<:]]word[[:>:]]’; → 1

加转义符试试?

试过, 无效

tidb目前正则表达式中不再支持[[:<:]]字符类,取而代之的是\b元字符,它表示单词边界。具体来说,\b 元字符用 于符合某些要求的定位匹配,可以用于匹配单词首尾、数字和字母的一侧。例如,要查找一个字符串中以“word”为单词开头的内容,可以使用正则表达式 ‘\bword’ 进行匹配。
而你的例子可以如下进行实现
SELECT ‘a wordx a’ REGEXP ‘\bword\b’; → 0

SELECT ‘a word a’ REGEXP ‘\bword\b’;→ 1

SELECT ‘a xword a’ REGEXP ‘\bword\b’; → 0

感谢!
执行后倒是不报错了,但似乎无法得到正确的结果。

论坛将两个反斜杠给显示成1个了,你把引号中的反斜杠b改成两个反斜杠b