Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Evaluasi kelipatan Ekspresi 'IN' dalam klausa 'WHERE' di mysql

Kueri ini akan mengembalikan baris, di mana b adalah 5 atau 7 , DAN c adalah 4 .

Apa yang Anda maksud dengan "evaluasi berpasangan?"

Pembaruan:

Saya akan menambahkan satu baris lagi ke sampel:

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

Jika Anda ingin mencocokkan seluruh rangkaian, Anda dapat menggunakan sintaks ini:

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

Ini berarti:"kembalikan semua baris di mana b adalah 2 dan c adalah 3 pada saat yang sama, ATAU b adalah 7 dan с adalah 9 pada saat yang sama."

Pada contoh di atas, kueri ini akan mengembalikan baris 1 dan 3

Tetapi jika Anda menulis ulang kueri ini sebaliknya, seperti ini:

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

, ini berarti "kembalikan semua baris di mana b adalah 2 atau 7 , DAN c adalah 3 atau 9 ).

Ini akan mengembalikan baris 1 , 3 dan 5 , karena baris 5 memenuhi kondisi untuk kueri kedua tetapi tidak untuk kueri pertama.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Adakah gunanya menggunakan LIMIT dalam kueri EXISTS?

  2. MySQL Query untuk mendapatkan hitungan per jam

  3. Menyimpan catatan database ke dalam array

  4. Temukan Titik dalam poligon PHP

  5. PHP:mysql_connect tidak mengembalikan FALSE