通配符mysql LIKE或IN数组值问题

时间:2011-01-26 02:06:45

标签: php sql mysql

我有以下代码块,它会在空格上爆炸字符串。

$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查询而没有好运。

1 个答案:

答案 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中的值不能包含逗号。