Выбор элементов по нескольким значениям - MySQL

Узнай цену своей работы

Формулировка задачи:

Всем привет, так сложилось что теперь редко работаю с mysql - затупил в простом запросе Есть товар, у него свойства Хранятся свойства - id элемента, id свойства, значение свойства как выбрать элементы у которых свойство 44 и 207 равны 11 и 13 соответственно, через AND - логично не работает т.к. значние поля не может быть равно сразу и 11 и 13 набросок:
SELECT e.`ID` 
FROM `elements` AS e 
INNER JOIN `props` AS p ON p.`element_id` = e.`id` 
WHERE 
    e.`ACTIVE` = 'Y' AND (p.`prop` = '44' AND p.`val` = '11') AND (p.`prop` = '207' AND p.`val` = '13')
З.Ы. Пардон сразу не добавил, условие может быть как =, так и <= => - привести все в кучу через IN - не получится

Решение задачи: «Выбор элементов по нескольким значениям»

textual
Листинг программы
AND ((p.`prop` = '44' AND p.`val` = '11') OR (p.`prop` = '207' AND p.`val` = '13'))

Объяснение кода листинга программы

В данном коде выполняется запрос к базе данных с условием, что нужно выбрать все элементы, у которых значение двух полей одновременно равно '44' и '11' или '207' и '13'.

  1. p - это название таблицы или переменной, которая содержит данные для выборки.
  2. prop - это название поля, по которому происходит выборка.
  3. val - это название второго поля, по которому происходит выборка.
  4. '44' - это значение первого поля, по которому происходит выборка.
  5. '11' - это значение второго поля, по которому происходит выборка.
  6. '207' - это значение первого поля, по которому происходит выборка.
  7. '13' - это значение второго поля, по которому происходит выборка. Данный запрос вернет все записи, где значения полей 'prop' и 'val' одновременно равны '44' и '11' или '207' и '13'.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.143 из 5