Mysql выборка по числам через запятую

218
29 июня 2018, 15:10

Допустим есть таблица новостей, в ней поле 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

Answer 1
SELECT * 
FROM news 
JOIN categories ON FIND_IN_SET(categories.id, news.category)
READ ALSO
Как вывести все строки в MySql

Как вывести все строки в MySql

ДД, Вывожу товар, по артиклу, дуелаю запрос в бд на пхп, вывожу:

176
syntax error, unexpected 'if' (T_IF), expecting ']'

syntax error, unexpected 'if' (T_IF), expecting ']'

помогите пожалуйста с ошибкой:

228
Как реализовать так header?

Как реализовать так header?

как можно вставить и подтянуть элемент влево

222
Все mysql запросы в одном файле php. Правильно ли?

Все mysql запросы в одном файле php. Правильно ли?

Обычно, я прописываю все необходимые запросы в одном файле - functionsphp

258