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