Допустим есть таблица новостей, в ней поле 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)
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники