我在数据库中提交了一个包含大量单词的文本。在我的前端,我创建了一个搜索框,我将在其中以多种方式进行过滤。我只能写一个单词或很多单词,我应该能够找到正确的字段,其中有这些字。实际上我使用LIKE条件,但只有当我写一个单词或者单词是在数据库中以相同的顺序写入时,这个条件才有效。即使我写的单词是“随机顺序”,它是否可以做到?这是我使用的例子:
$sql = "SELECT * FROM table WHERE description LIKE '%".$description."%' ";
答案 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}";