Допустим есть таблица новостей, в ней поле category (varchar)
. Категорий может быть несколько, и это выглядит так:
id | category
1 | 1,2
То есть в данном случае первая новость идёт в двух категориях.
При выборке новости собственно нужно получить данные о категориях в которых она состоит.
Сразу в голову приходит стандартный вариант, делаем explode, затем выбираем данные по каждому числу (id категории).
Но возник вопрос, можно ли это всё сделать одним запросом, или как это сократить?
То есть что-то на подобии, SELECT * FROM news JOIN categories ON news.category (цифры через запятую) IN categories.id
Ну или если так не получится (что скорее всего вероятно) то можно ли получить данные категорий, напрямую передавая иды через запятую? То есть на подобии: SELECT * FROM categories WHERE id IN ACROSS COMA 1,4,9
SELECT *
FROM news
JOIN categories ON FIND_IN_SET(categories.id, news.category)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Обычно, я прописываю все необходимые запросы в одном файле - functionsphp