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

Tutorial MySQL :Pernyataan MySQL IN (Lanjutan)

Penggunaan dasar pernyataan MySQL IN berkaitan dengan satu kolom yang dibandingkan dengan beberapa nilai. Ada juga beberapa penggunaan lanjutan dari pernyataan MySQL IN yang membuat kasus penggunaan menarik. Pertimbangkan tabel contoh user_table di mana 5 pengguna diberi izin berbeda sebagai admin, pengguna super, dll berdasarkan nilai 1 atau 0,

mysql> SELECT * FROM user_table;
+-----------+----------+--------------+----------+-----------+
| user_id   | is_admin | is_superuser | is_staff | is_active |
+-----------+----------+--------------+----------+-----------+
|    1      |    1     |       1      |     1    |     1     |
|    2      |    0     |       1      |     1    |     1     |
|    3      |    0     |       1      |     1    |     1     |
|    4      |    0     |       0      |     0    |     1     |
|    5      |    0     |       0      |     0    |     0     |
+-----------+----------+--------------+----------+-----------+

Gunakan Kasus 1 :Pernyataan MySQL IN untuk membandingkan nilai dengan beberapa kolom

Sintaksnya adalah:

SELECT * FROM TableName WHERE value IN (column1, column2, column3, column4)

Misalnya,

mysql> SELECT * FROM user_table WHERE 1 IN (is_admin, is_superuser, is_staff, is_active);

+-----------+----------+--------------+----------+-----------+
| user_id   | is_admin | is_superuser | is_staff | is_active |
+-----------+----------+--------------+----------+-----------+
|    1      |    1     |       1      |     1    |     1     |
|    2      |    0     |       1      |     1    |     1     |
|    3      |    0     |       1      |     1    |     1     |
|    4      |    0     |       0      |     0    |     1     |
+-----------+----------+--------------+----------+-----------+

Pernyataan IN biasa hanya melibatkan SATU KOLOM yang dibandingkan dengan beberapa nilai .

SELECT * FROM TableName WHERE column1 IN (1,2,3,4)

Ini berfungsi sebagai

SELECT  * FROM   TableName WHERE  column1 = 1 OR column1 = 2 OR column1 = 3 OR column1 = 4

Pernyataan ini adalah NILAI yaitu dibandingkan dengan beberapa kolom

SELECT * FROM TableName WHERE 1 IN (column1, column2, column3, column4)

sama dengan

SELECT  * FROM   TableName WHERE  column1 = 1 OR column2 = 1 OR column3 = 1 OR column4 = 1

Gunakan Kasus 2:Pernyataan MySQL IN untuk membandingkan beberapa kolom dengan beberapa nilai

Sintaksnya adalah:

SELECT * FROM TableName WHERE (column1,column2) in ((value1,value2),(value3,value4),..)

Misalnya,

mysql> SELECT * FROM user_table WHERE (is_staff,is_admin) in ((1,0),(1,1));
+-----------+----------+--------------+----------+-----------+
| user_id   | is_admin | is_superuser | is_staff | is_active |
+-----------+----------+--------------+----------+-----------+
|    1      |    1     |       1      |     1    |     1     |
|    2      |    0     |       1      |     1    |     1     |
+-----------+----------+--------------+----------+-----------+

Ini berfungsi sebagai

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara membuat kolom variabel dummy untuk ribuan kategori di Google BigQuery?

  2. Sertakan header saat menggunakan SELECT INTO OUTFILE?

  3. Waktu Mulai MySQL Lambat dalam mode GTID? Ukuran File Log Biner Mungkin Menjadi Masalah

  4. Kunci SQL, MUL vs PRI vs UNI

  5. Ubah hasil basis data menjadi array