Как сделать поиск значения по ID
Пример:
Есть таблица posts, в нем поле categories, где значения через запятую 1,2,5,15,16,22,32
$search = 5;
// или $search = "1,15";
Как составить SQL запрос на PHP где поле categories соответствует переменной $search ?
Ответы (1 шт):
Автор решения: Ivan Dudarev
→ Ссылка
Если не менять структуру БД, можно сделать примерно так:
<?php
$search = "1,15";
$ids = explode(",", $search);
$where = [];
foreach($ids as $id) {
$where[] = "CONCAT(',', categories, ',') LIKE '%,$id,%'";
}
$sql = "SELECT * FROM posts WHERE " . implode(" AND ", $where);
Но этот вариант будет очень тяжелым для выполнения. Лучше нормализовать базу данных, добавить внешние ключи, индексы и использовать JOIN