Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Klauzula wielokrotnego Where w MySQL

Myślę, że jesteś po tym:

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

Nie możesz użyć AND, ponieważ wartości nie mogą być 24 red i 25 big i 27 round jednocześnie w tym samym wierszu, ale musisz sprawdzić obecność style_id, style_value w wielu wierszach, pod tym samym image_id .

W tym zapytaniu używam IN (co w tym konkretnym przykładzie jest równoważne OR) i liczę różne pasujące wiersze. Jeśli pasują 3 różne wiersze, oznacza to, że wszystkie 3 atrybuty są obecne dla tego image_id , a moje zapytanie go zwróci.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MysqlDump z kodowania Powershell i Windows

  2. Jak zresetować klucz podstawowy tabeli?

  3. używanie zmiennej środowiskowej do lokalnej konfiguracji sekwencjonowania

  4. Jak uzyskać dane z innej tabeli za pomocą danych kolumnowych z innej tabeli?

  5. Przydatne wskazówki dotyczące rozwiązywania typowych błędów w MySQL