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

Obliczanie wielokrotności wyrażeń 'IN' w klauzulach 'WHERE' w mysql

To zapytanie zwróci wiersze, w których b to albo 5 lub 7 , ORAZ c to 4 .

Co rozumiesz przez „ocenę w parach?”

Aktualizacja:

Do próbki dodam jeszcze jeden wiersz:

 +----------+----------+----------+
 |    PK    |     b    |     c    |
 +----------+----------+----------+
 |     1    |     2    |     3    |
 +----------+----------+----------+
 |     2    |     5    |     4    |
 +----------+----------+----------+
 |     3    |     7    |     9    |
 +----------+----------+----------+
 |     4    |     7    |     4    |
 +----------+----------+----------+
 |     5    |     2    |     9    |
 +----------+----------+----------+

Jeśli chcesz dopasować całe zestawy, możesz użyć następującej składni:

SELECT  *
FROM    table_name
WHERE   (b, c) IN ((2, 3), (7, 9))

Oznacza to:„zwróć wszystkie wiersze, w których b to 2 i c to 3 w tym samym czasie LUB b to 7 i с to 9 w tym samym czasie."

W powyższym przykładzie to zapytanie zwróci wiersze 1 i 3

Ale jeśli przepiszesz to zapytanie na odwrót, w ten sposób:

SELECT  *
FROM    table_name
WHERE   b IN (2, 7)
        AND c IN (3, 9)

, będzie to oznaczać „zwróć wszystkie wiersze, w których b to albo 2 lub 7 , ORAZ c to albo 3 lub 9 ).

To zwróci wiersze 1 , 3 i 5 , ponieważ wiersz 5 spełnia warunek drugiego zapytania, ale nie pierwszego.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak przechowywać 3 listy przycisków radiowych w bazie danych mysql w jednej kolumnie, w różnych wierszach?

  2. Jak wstawić DateTime do bazy danych MySql za pomocą kodu C#?

  3. Mysql aktualizuje wiersz o inną wartość wiersza w tej samej tabeli

  4. Jak monitorować pulę połączeń dla łącznika danych .NET MySQL w usługach IIS?

  5. Niestandardowe ZAMÓWIENIE BY, aby zignorować „the”