Php 类MySQL操作符的改进

Php 类MySQL操作符的改进,php,mysql,mysqli,Php,Mysql,Mysqli,我有一个使用PHP的单一文本输入的搜索表单,MySQLi 用户搜索人名。MySQL表中有一列“name”,还有一列“namenospace”-在匹配用户搜索时使用此值 在输入时,用户查询将去掉所有空格,因此也没有空格。然后我使用LIKE操作符将用户的输入(不带空格)与列“namenospace”进行比较 SELECT * FROM table WHERE nameNoSpaces LIKE '%query%' 如果“nameNoSpaces”中的值包含查询字符串的任何部分,则将匹配该值 例如,

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

用户搜索人名。MySQL表中有一列“name”,还有一列“namenospace”-在匹配用户搜索时使用此值

在输入时,用户查询将去掉所有空格,因此也没有空格。然后我使用LIKE操作符将用户的输入(不带空格)与列“namenospace”进行比较

SELECT * FROM table WHERE nameNoSpaces LIKE '%query%'
如果“nameNoSpaces”中的值包含查询字符串的任何部分,则将匹配该值

例如,查询“hello you”将与值“goodhelloyou”匹配。 但不是:询问“你好”

我想改进搜索功能,以便“youhello”将返回包含“goodhelloyou”的行

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

但我想知道是否有一个简单的SQL操作符可以用来实现这一点


谢谢

把它弄明白了……你以前应该见过它的

SELECT * FROM table WHERE name LIKE '%word1%' AND name LIKE '%word2%'....'%wordn%'

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

%hello%you%将匹配“HelloGodYou”,但%you%hello%不会匹配。这就是我需要的。我没有使用foreach循环创建单个SELECT查询-我使用foreach循环为每个单词运行SELECT查询
SELECT * FROM table WHERE name LIKE '%word1%' AND name LIKE '%word2%'....'%wordn%'