当我这样做时,例如,搜索“ hello”,我得到所有使用“ hello”的实例。但是,如果我搜索“你好我的”,我只会得到两个单词紧随其后的实例。
$search = 'hello my';
$search = explode(' ', $search);
一旦我将其分解,我不确定该怎么做,我曾尝试使用如下所示的for循环:
for($i = 0; $i < count($search); $i++) {
$search = $search[$i];
}
我还尝试将SQL SELECT放入for循环中,以便进行多次搜索,但没有用。我的SQL语法如下所示:
SELECT * FROM table WHERE string LIKE '%$search%';
答案 0 :(得分:2)
您可以尝试使用类似的方法来搜索搜索字符串中的任何单词:
$search = 'hello my';
$search = explode(' ', $search);
$query = "SELECT * FROM table WHERE string LIKE '%" . implode("%' OR string LIKE '%", $search) . "%'";
echo $query;
输出:
SELECT * FROM table WHERE string LIKE '%hello%' OR string LIKE '%my%'
如果要在搜索字符串中搜索所有个单词,请将上面代码中的OR
更改为AND
,即
$query = "SELECT * FROM table WHERE string LIKE '%" . implode("%' AND string LIKE '%", $search) . "%'";
echo $query;
输出:
SELECT * FROM table WHERE string LIKE '%hello%' AND string LIKE '%my%'