我有一个使用PHP,MySQLi的单个文本输入的搜索表单。
用户搜索人名。在MySQL表格中有一列名称'还有一个专栏名称NoSpaces' - 匹配用户搜索时使用此值。
在输入时,用户查询将被删除所有空格,以便它也没有空格。然后我使用LIKE运算符将用户的输入(没有空格)与列'nameNoSpaces'进行比较。
SELECT * FROM table WHERE nameNoSpaces LIKE '%query%'
如果一个值在名称中没有空间'包含查询字符串的任何部分,它将被匹配。
E.G。查询'你好'将匹配价值' goodhelloyou'。 但不是:查询'你好吗'
我想提高搜索功能,以便“你好”和“你好”。将返回包含' goodhelloyou'。
的行我已经通过PHP实现了这一点(foreach word do' LIKE'%word%'并返回匹配每个单词的所有名称)。
但是我想知道是否只有一个SQL运算符可以用来实现这个?
由于
答案 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循环创建查询