我有一个创建查询的搜索功能。我的目标是搜索确切的单词,所以如果短语是'hello',它应该只返回'hello'的结果(不是'xhello','helloxx'等)。我的代码如下:
SELECT (...) WHERE x RLIKE '[[:<:]]word[[:>:]]'
它适用于大多数情况,但是 当短语为f.e时,问题就开始了。 '$ hello'或'helloŁ'等 - 特殊字符破坏了功能。
有办法处理吗?
答案 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( |$)'