MySQL - IN Operator

Hai there, para pengurus pangkalan data masa depan! Hari ini, kita akan melihat salah satu alat paling berguna MySQL: operator IN. Anggaplah dia seperti tongkat sihir yang dapat membantu anda menyaring data secara lebih efektif. Jadi, peganglah tempat duduk maya anda, dan mari kita melangkah dalam perjalanan yang menarik ini bersama!

MySQL - IN Operator

MySQL In Operator

Operator IN adalah seperti pengawal yang ramah di klub. Ia menyemak jika nilai sepadan dengan mana-mana nilai dalam senarai. Bayangkan anda cuba untuk mengetahui jika buah kesukaan anda ada di pasar. Sebaliknya meminta, "Adakah anda ada epal? Adakah anda ada pisang? Adakah anda ada oren?" satu per satu, anda boleh hanya bertanya, "Adakah anda ada mana-mana ini: epal, pisang, atau oren?" Itu betul apa yang operator IN lakukan!

Mari kita lihat contoh ringkas:

SELECT * FROM fruits WHERE name IN ('apple', 'banana', 'orange');

Query ini berkata, "Tunjukkankan semua buah yang adalah epal, pisang, atau oren." Itu seperti memberitahu komputer anda untuk menjadi detektif buah!

Ini adalah contoh lain:

SELECT * FROM employees WHERE department IN ('HR', 'IT', 'Finance');

Query ini mengambil semua pekerja yang bekerja di departemen HR, IT, atau Keuangan. Ia jauh lebih ringkas daripada menulis:

SELECT * FROM employees WHERE department = 'HR' OR department = 'IT' OR department = 'Finance';

Lihat betapa rapi operator IN membuat hal-hal? Itu seperti membersihkan lemari SQL anda!

Operator IN dalam Penyataan UPDATE

Sekarang, mari kita lihat bagaimana kita dapat menggunakan rakan operator IN kita untuk mengemaskini data. Bayangkan anda adalah seorang guru (seperti saya!) dan anda mahu memberi bonus kepada semua pelajar yang mendapat 95, 98, atau 100 dalam peperiksaan mereka.

UPDATE students
SET has_bonus = TRUE
WHERE score IN (95, 98, 100);

Query ini mengemaskini semua pelajar yang mendapat skor 95, 98, atau 100, menetapkan bidang 'has_bonus' mereka ke TRUE. Itu seperti mengayunkan tongkat sihir dan berkata, "Tahniah, pencapa tinggi!"

MySQL NOT IN operator

kadang-kadang, kita mahu mencari hal-hal yang TIDAK dalam senarai tertentu. Itu di mana NOT IN datang ke main. Ia seperti berkata, "Tunjukkankan saya segalanya kecuali ini."

Contohnya:

SELECT * FROM fruits WHERE name NOT IN ('apple', 'banana', 'orange');

Query ini akan tunjukkan semua buah kecuali epal, pisang, dan oren. Ia sempurna untuk saat anda merasa aventurous dan mahu mencuba buah-buah baru!

Menandingkan Nilai Menggunakan Operator IN

Operator IN adalah hebat untuk membandingkan nilai ganda. Bayangkan anda adalah seorang pustakawan (saya pernah menjadi sukarelawan di pustaka semasa kolej!), dan anda mahu mencari buku-buku oleh penulis tertentu:

SELECT title, author FROM books
WHERE author IN ('J.K. Rowling', 'George R.R. Martin', 'Stephen King');

Query ini akan mengambil semua buku yang ditulis oleh tiga penulis ini. Ia seperti memiliki penyelidikan sastrawi!

MySQL Subquery dengan Operator IN

Sekarang, mari kita naik tingkat dan gunakan subquery dengan operator IN kita. Subquery adalah seperti query dalam query - itu adalah SQL inception!

Bayangkan anda mahu mencari semua pekerja yang bekerja di departemen yang mempunyai lebih daripada 50 pekerja:

SELECT name, department
FROM employees
WHERE department IN (
SELECT department
FROM employees
GROUP BY department
HAVING COUNT(*) > 50
);

Query ini pertama kali mencari semua departemen dengan lebih daripada 50 pekerja, dan kemudian menggunakan hasil itu untuk mencari semua pekerja di departemen itu. Ia seperti bertanya, "Siapa yang menjadi sebahagian dari kumpulan besar?"

Operator IN Menggunakan Program Klien

Bila menggunakan program klien untuk berinteraksi dengan MySQL, anda boleh menggunakan variabel dengan operator IN. Ini adalah terutama berguna bila anda mahu membuat query anda lebih dinamik.

Ini adalah contoh menggunakan Python:

import mysql.connector

# Sambung ke pangkalan data
cnx = mysql.connector.connect(user='your_username', password='your_password',
host='127.0.0.1', database='your_database')
cursor = cnx.cursor()

# Takrifkan nilai anda mahu cari
search_values = ('apple', 'banana', 'orange')

# Buat query
query = "SELECT * FROM fruits WHERE name IN (%s, %s, %s)"

# Laksanakan query
cursor.execute(query, search_values)

# Ambil dan cetak hasil
for (name, color, price) in cursor:
print(f"{name}: {color}, ${price}")

# Tutup sambungan
cursor.close()
cnx.close()

Dalam contoh ini, kita menggunakan Python untuk sambung ke pangkalan data MySQL dan melaksanakan query dengan operator IN. Placeholder %s dalam query digantikan dengan nilai dari search_values bila query dilaksanakan.

Berikut adalah jadual yang menggabungkan pelbagai cara kita telah menggunakan operator IN:

Penggunaan Contoh
Basic SELECT SELECT * FROM fruits WHERE name IN ('apple', 'banana', 'orange');
UPDATE UPDATE students SET has_bonus = TRUE WHERE score IN (95, 98, 100);
NOT IN SELECT * FROM fruits WHERE name NOT IN ('apple', 'banana', 'orange');
Dengan Subquery SELECT name FROM employees WHERE department IN (SELECT department FROM employees GROUP BY department HAVING COUNT(*) > 50);
Dalam Program Klien query = "SELECT * FROM fruits WHERE name IN (%s, %s, %s)"

Dan itu lah, rakan-rakan! Kita telah melihat operator IN dari pelbagai sudut. Ingat, latihan membawa ke kesempurnaan, jadi jangan takut untuk mencuba query ini. SQL mungkin kelihatan menakutkan pada permulaan, tetapi dengan masa, anda akan menulis query seperti seorang pro. Terus coding, terus belajar, dan terutamanya, bersenang-senanglah dengannya!

Credits: Image by storyset