У меня есть таблица:MySQL запросы для «И» поиска формы с несколькими флажками и выберите меню
item_id | property_id | value |
================================
1 | 100 | 1 |
1 | 101 | 1 |
1 | 102 | 0 |
2 | 100 | 1 |
2 | 101 | 1 |
2 | 102 | 1 |
2 | 120 | black |
3 | 100 | 1 |
3 | 101 | 0 |
3 | 102 | 1 |
4 | 121 | big |
...
Я хотел бы выполнить «И» поиск по форме с несколькими флажками и выберите меню (каждый флажок и выберите меню, имя которого называется «property_id»).
Пример:
- Когда я проверить флажок 100 и 101, желания результат запроса item_id = 1, 2.
- Когда я проверить флажок 100, 101 и выбрать 'черный' от выбора меню 120, результатом желания является item_id = 2.
- Когда я устанавливаю флажок 100, 101, выбираю «черный» из меню 120 выбора и выбираем «большой» из меню 121 выбора, результат желания - item_id = NULL.
Количество проверенных объектов (флажки и избранные) может отличаться.
Я пробовал:
SELECT item_id
FROM yourtable
WHERE property_id IN (100, 101)
AND value = 1
GROUP BY item_id
HAVING COUNT(DISTINCT property_id) = 2
Но это только для галочки и значением 0 или 1. У меня есть проблема, чтобы реализовать его с некоторым меню (например, 2 или 3)
Я надеюсь, что объясняет, что я пытаюсь сделать. Спасибо заранее!
http://whathaveyoutried.com? –
Я не лучший автор SQL, но вы пробовали «WHERE property_id = 100, 101»? – Matt
Это общий вопрос, посмотрите на предложения справа. Я помню, что он появился в http://stackoverflow.com/questions/12029608/select-query-in-sql и http://stackoverflow.com/questions/12399950/php-sql-way-to-skip-over- раздел-of-a-query-if-variable-is-blank, но, безусловно, есть много других. – LSerni