搜寻有特殊字符
问题描述:
如果我有一个表files
,它有一个列title
,有的标题的都是这种格式:搜寻有特殊字符
google: and facebook
stack: overflow
现在,我想在添加搜索功能,我应用程序,它执行LIKE '%word%'
查询。但是,如果人们搜索google and facebook
它不会找到任何东西,除非他们专门搜索google: and facebook
。 我知道LIKE
做,为什么它不给我找的结果,我只是询问是否有办法在MySQL表进行搜索,而忽略特殊字符像: ' - . , "
等
感谢。
答
比较前使用REPLACE功能。
... REPLACE(fieldname, ':', '') LIKE %word%
+0
谢谢。如您所说,这不适合大型数据集,但在我的情况下就足够了。 – Yakirbu
答
您可以使用正则表达式工作
答
另一种方法是,以取代所有空格用“%”搜索字符串或者爆炸的搜索字符串(空间分隔符号),并且不同部位与连接一个OR语句。
比较前使用REPLACE函数。 ... REPLACE(fieldname,':','')LIKE%word% – smozgur
你应该更清楚地发布你的问题,用户不知道你的数据究竟是什么样的,即使你忽略了特殊的字符,他们可能会再输入一个空格像'谷歌和脸谱'或没有'和'像'谷歌脸谱'。所以即使'replace'或'REGEXP'也能给出你现在想要的,但你也永远不知道用户会输入什么来搜索。 – Blank
我知道,我只是特意询问特殊字符,因为我多次面对这个问题。 – Yakirbu