@Gumper

Как сделать двойное условие в SQL запросе?

При создание сайт блога столкнулся с проблемой.
Не могу придумать как сделать двойное условие в SQL запросе,
вот код:
SELECT * FROM `comics` WHERE `categories_id` = '17' OR `categories_id_2` = '17' OR `categories_id_3` = '17' OR `categories_id_4` = '17' OR `categories_id_5` = '17' OR `categories_id_6` = '17' OR `categories_id_7` = '17' OR `categories_id_8` = '17' AND `categories_id` = '1' OR `categories_id_2` = '1' OR `categories_id_3` = '1' OR `categories_id_4` = '1' OR `categories_id_5` = '1' OR `categories_id_6` = '1' OR `categories_id_7` = '1' OR `categories_id_8` = '1' ORDER BY `id` DESC

Результат:
5d5d4497d77d5154431164.png
Но проблема в том что с мне нужны статьи только с двумя категориями:
5d5d44de957e2477884887.png
Как это возможно решить, или стоит просто лишние обрезать в PHP?
  • Вопрос задан
  • 394 просмотра
Решения вопроса 2
@oleg_ods
Почитай что такое третья нормальная форма и что такое связи.

Тебе нужно вынести категории в отдельную таблицу и реализовать связь многие ко многим. Когда сделаешь это твой вопрос сам собой отпадет)
Ответ написан
@Mercury13
Программист на «си с крестами» и не только
AND всегда приоритетнее, чем OR. Надо так.
WHERE (`categories_id` = '17' OR `categories_id_2` = '17' ...)
  AND (`categories_id` = '1' OR `categories_id_2` = '1' ...)

Может, как говорит, oleg_ods, сработает связь 1:∞, может, и не сработает — но быстрое исправление запроса такое.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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