改进MySQL LIKE运算符

时间:2015-04-15 09:58:05

标签: php mysql mysqli

我有一个使用PHP,MySQLi的单个文本输入的搜索表单。

用户搜索人名。在MySQL表格中有一列名称'还有一个专栏名称NoSpaces' - 匹配用户搜索时使用此值。

在输入时,用户查询将被删除所有空格,以便它也没有空格。然后我使用LIKE运算符将用户的输入(没有空格)与列'nameNoSpaces'进行比较。

SELECT * FROM table WHERE nameNoSpaces LIKE '%query%'

如果一个值在名称中没有空间'包含查询字符串的任何部分,它将被匹配。

E.G。查询'你好'将匹配价值' goodhelloyou'。 但不是:查询'你好吗'

我想提高搜索功能,以便“你好”和“你好”。将返回包含' goodhelloyou'。

的行

我已经通过PHP实现了这一点(foreach word do' LIKE'%word%'并返回匹配每个单词的所有名称)。

但是我想知道是否只有一个SQL运算符可以用来实现这个?

由于

2 个答案:

答案 0 :(得分:0)

SELECT * FROM table WHERE nameNoSpaces LIKE '%hello%you%'

答案 1 :(得分:0)

想出来......应该在

之前看到它
SELECT * FROM table WHERE name LIKE '%word1%' AND name LIKE '%word2%'....'%wordn%'

将所有单词放入数组并使用foreach循环创建查询