MySQL喜欢两个字

时间:2014-09-18 03:07:18

标签: mysql

什么是正确的SQL语句,以便当我搜索两个单词时,例如文本框中的“文本字段”,它将使用LIKE语句返回其中包含“text”和“field”的所有结果? 我无法找到合适的搜索条件。

编辑:如果可能,我想让它变得动态。就像用户搜索5个单词一样,所有5个单词都在Like语句中。我正在努力达成一项声明 SELECT * FROM table WHERE search (LIKE %searchterm1%) OR (LIKE %searchterm2%) OR (LIKE %searchterm3%) ....

2 个答案:

答案 0 :(得分:0)

正确的语法是;

SELECT * FROM table WHERE (column1 LIKE '%text%' AND column1 LIKE '%field%')

要允许用户输入多个单词,首先要看一下SQL injection的问题,但假设您正在使用PHP,您可以爆炸输入字符串并破坏生成的数组,就像这样;

$values = explode(" ", $input); // delimiter is a space
$query = "SELECT * FROM table WHERE (column1 LIKE '%" . implode("%' AND column1 LIKE '%",$values) . "%')";

希望这有帮助!

答案 1 :(得分:0)

单词无序使用标准logical conjunction (aka AND)

LIKE '%word1%' AND LIKE '%word2%'

如果单词是有序的,则在搜索词本身中使用隐式连接

LIKE '%word1%word2%'

根据需要修改类似的通配符(和引号);还要考虑a full-text search是否更合适。