Mysql
 sql >> база данни >  >> RDS >> Mysql

Клауза MySQL Multiple Where

Мисля, че следите това:

SELECT image_id
FROM list
WHERE (style_id, style_value) IN ((24,'red'),(25,'big'),(27,'round'))
GROUP BY image_id
HAVING count(distinct style_id, style_value)=3

Не можете да използвате И, защото стойностите не могат да бъдат 24 red и 25 big и 27 round по едно и също време в същия ред, но трябва да проверите наличието на style_id, style_value в няколко реда, под същия image_id .

В тази заявка използвам IN (което в този конкретен пример е еквивалентно на ИЛИ) и броим отделните редове, които съвпадат. Ако 3 отделни реда съвпадат, това означава, че всички 3 атрибута присъстват за този image_id , и моята заявка ще го върне.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Не можа да се зареди JDBC клас драйвери [com.mysql.jdbc.Driver]

  2. Правете закъснение / цикъл, за да получите 10 произволни резултата

  3. Проблем с Apache в Xampp след множество инсталирания на Apache

  4. Как да инсталирате и конфигурирате mysql 5.6.16 в Windows 7

  5. Актуализиране на MySQL данни на живо