在搜索中忽略撇号,逗号,连字符等

时间:2013-01-08 19:53:35

标签: mysql sql

问题示例:

SELECT * FROM `table`
WHERE `content`
RLIKE "[[:<:]]didnt[[:>:]]"

问题是,当我搜索“didnt”之类的内容时,找不到“没有”(带撇号)的列。如果我要搜索“没有”,则找不到带有“didnt”(没有撇号)的列。

我需要进行哪些更改才能忽略撇号,逗号,连字符等,并且无论是否存在撇号都会给出结果。

2 个答案:

答案 0 :(得分:0)

为什么不尝试使用|options

SELECT * FROM table
WHERE 
(content RLIKE "[[:<:]]didnt[[:>:]]|[[:<:]]didn't[[:>:]]|[[:<:]]didn..t[[:>:]]|ETC)"

来源:http://www.sqlines.com/mysql/regexp_rlike

答案 1 :(得分:0)

您可以使用嵌套替换函数:

SELECT *
FROM `table`
WHERE
  replace(replace(replace(`content`, '\'', ''), ',', ''), '-', '')
  RLIKE "[[:<:]]didnt[[:>:]]"