Предполагая, что у меня есть строки в базе данных, которая выглядит следующим образом:
The quick brown fox 0 jumps over the lazy dog 0.
The quick brown fox 0 jumps over the lazy dog 1.
The quick brown fox 0 jumps over the lazy dog 2.
The quick brown fox 1 jumps over the lazy dog 0.
The quick brown fox 1 jumps over the lazy dog 1.
The quick brown fox 1 jumps over the lazy dog 2.
Есть ли способ найти 2 подстроки, используя Laravel Fluent Query Builder?
Скажем, я ищу «лиса 0» и «собаку». Ожидаемый результат будет:
The quick brown fox 0 jumps over the lazy dog 0.
The quick brown fox 0 jumps over the lazy dog 1.
The quick brown fox 0 jumps over the lazy dog 2.
Вот что у меня сейчас есть:
$searchStr = ["fox 0", "dog"];
$query->where('text', '=', $searchStr);
Условие SQL-запроса, которое даст вам такие результаты: where text like '%fox 0%' and text like '%dog%'
,
Чтобы перевести на свободный запрос было бы:
$query->where('text', 'like', '%fox 0%')->where('text', 'like', '%dog%');
Или, следуя вашему массиву:
$searchStr = ["fox 0", "dog"];
foreach($searchStr as $str) {
$query->where('text', 'like', '%'.$str.'%');
}
Других решений пока нет …