У меня есть база данных, в которой есть текст с большим количеством слов. В моем интерфейсе я создал окно поиска, в котором я бы фильтровал разными способами. Я мог бы написать только одно слово или много слов, и я должен был бы найти правильное поле, в котором есть эти слова. На самом деле я использую условие LIKE, но это условие работает только в том случае, если я пишу одно слово или слова написаны в базе данных в том же порядке. Возможно ли это сделать, даже если слова, которые я пишу, находятся в «случайном порядке»? Вот пример, который я использую:
$sql = "SELECT * FROM table WHERE description LIKE '%".$description."%' ";
Используйте взорваться и взорваться с условием ИЛИ для каждого слова.
$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}";
Других решений пока нет …