@asergrisa

Mysql, как выбирать записи у которых совпадают подстроки из базы данных с каким-либо значением из заданного массива?

У меня есть массив ["foo", "bar"] и база данных
id | record
1 | "footbal"
2 | "barman"
3 | "false"
Как сделать запрос который выводит 1, 2 строку, т.к. совпадают подстроки foo, bar, и не выводил 3 строку, т.к. там нет никаких совпадений.
P.S. Нужно именно MySQL решение, т.к. используя язык программирования эта задача тривиальна. Ну а MySQL Знает что такое массивы, условие WHERE ... IN (). Вопрос как совместить это с LIKE.
  • Вопрос задан
  • 327 просмотров
Пригласить эксперта
Ответы на вопрос 1
@polar-bear
$like = [];
foreach ($array as $value) {
    $like[] = "record LIKE '%$value%'";
}
$sql = 'SELECT * FROM tbl WHERE ' . implode(' OR ', $like);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы