如何在mysql中使用更多单词的条件

时间:2014-12-09 18:09:01

标签: php mysql html-form sql-like

我在数据库中提交了一个包含大量单词的文本。在我的前端,我创建了一个搜索框,我将在其中以多种方式进行过滤。我只能写一个单词或很多单词,我应该能够找到正确的字段,其中有这些字。实际上我使用LIKE条件,但只有当我写一个单词或者单词是在数据库中以相同的顺序写入时,这个条件才有效。即使我写的单词是“随机顺序”,它是否可以做到?这是我使用的例子:

$sql = "SELECT * FROM table WHERE description LIKE '%".$description."%' ";

1 个答案:

答案 0 :(得分:1)

对每个单词使用爆炸和内爆OR条件。

$descriptionArr = explode(" ", $description);
if(!is_null($descriptionArr)) {
   foreach($descriptionArr as $search) {
     $descriptionQuery[] = " description LIKE '%{$search}%' ";
   }
   $condition = " WHERE " . implode(" OR ", $descriptionQuery);
}
$sql = "SELECT * FROM table {$condition}";