SQL正则表达式中的特殊字符 - 将字边界与特殊字符匹配

时间:2016-08-03 09:10:04

标签: mysql sql regex

我有一个创建查询的搜索功能。我的目标是搜索确切的单词,所以如果短语是'hello',它应该只返回'hello'的结果(不是'xhello','helloxx'等)。我的代码如下:

SELECT (...) WHERE x RLIKE '[[:<:]]word[[:>:]]'

它适用于大多数情况,但是 当短语为f.e时,问题就开始了。 '$ hello'或'helloŁ'等 - 特殊字符破坏了功能。

有办法处理吗?

1 个答案:

答案 0 :(得分:0)

尝试

SELECT * FROM table WHERE x RLIKE '(^|[[:space:]])Hello([[:space:]]|$)'

SELECT * FROM table WHERE x RLIKE '(^| )Hello( |$)'

SELECT * FROM table WHERE x REGEXP '(^|[[:space:]])Hello([[:space:]]|$)'

SELECT * FROM test WHERE name REGEXP '(^| )Hello( |$)'