PHP-在搜索数据库中的匹配项之前,如何清除常见的文本和字符?

PHP-在搜索数据库中的匹配项之前,如何清除常见的文本和字符?,php,mysql,regex,Php,Mysql,Regex,我目前正在执行搜索功能,以便在多个列和多个表中搜索字符串。我想知道在执行数据库搜索之前如何预处理搜索文本的最佳方法 例如,搜索文本可能是 "Sales / Marketing Executives - Full/Part time - 20% Commission" 理想情况下,我希望在搜索之前删除“/”、“-”、“%”等 因为即使我使用MySQL查询作为 LIKE '% KEYWORD %' 仍然是一种常见的搜索方式 "Sales Executives" 不会匹配上面的字符串,记住我不

我目前正在执行搜索功能,以便在多个列和多个表中搜索字符串。我想知道在执行数据库搜索之前如何预处理搜索文本的最佳方法

例如,搜索文本可能是

"Sales / Marketing Executives - Full/Part time - 20% Commission"
理想情况下,我希望在搜索之前删除“/”、“-”、“%”等

因为即使我使用MySQL查询作为

LIKE '% KEYWORD %'
仍然是一种常见的搜索方式

"Sales Executives" 
不会匹配上面的字符串,记住我不是在寻找一个简单的

STR_REPLACE solution
因为用这种方法不可能清除所有可能的搜索选项


还有其他想法吗?

只需使用全文搜索。它将处理忽略“非文本”和过于频繁的单词:
LIKE
对于您想要的搜索类型几乎毫无用处,而全文搜索就是为它而设计的。hw我如何将全文搜索与诸如(1和e.status='active'和(j.status='published'或j.status='expired')之类的常用和运算符结合起来@mahen3d我建议您从阅读MarcB linkedi所做的文档开始。此全文搜索有许多重新定价,即,仅MyISAM表支持全文搜索。而且没有办法将多个AND运算符组合在一起。。这对我来说毫无用处。从5.5开始,innodb在某个地方支持全文。