我有以下代码块,它会在空格上爆炸字符串。
$run = explode(" ",strtolower($q));
例如。 “这是字符串”
数组$run
如下所示:
(这就是,字符串)
我遇到的问题是:
如果字符串有白色,我只想explode
字符串,与使用php函数str_word_count($q)
> 1相同。
不确定如何使用其中任何一个创建单个查询,该查询将使用字符串和搜索表中的多个单词。
$query = "SELECT name FROM `table1` WHERE name LIKE '%". mysql_real_escape_string($run[0]) ."%' OR name LIKE '%". mysql_real_escape_string($run[1]) ."%'";
尝试简单地完成上述查询,使其更小,并根据字数大小变化。这也是爆炸字符串然后准备sql的好方法吗?
我已经尝试过使用IN
进行SQL查询而没有好运。
答案 0 :(得分:2)
您可以使用MySQL的MATCH。 。 。反对 。 。 。执行这种搜索:
WHERE MATCH (name) AGAINST ('this is the string')
有关详细信息,请参阅documentation。
原始解决方案,在这种情况下无用:
您可以查看MySQL特定功能FIND_IN_SET:
WHERE FIND_IN_SET(colname, 'This,is,the,string') > 0
但是,colname中的值不能包含逗号。