Penjelasan sederhana
LIKE dipakai untuk mencari teks berdasarkan pola, bukan nilai yang persis sama. Berguna kalau kamu hanya ingat sebagian kata.
Ada dua karakter khusus. % mewakili berapa pun karakter (bahkan tidak ada sama sekali), dan _ mewakili tepat satu karakter. Jadi 'A%' berarti diawali huruf A, '%a' berarti diakhiri huruf a, dan '%ra%' berarti mengandung "ra" di mana saja.
Sintaks
WHERE kolom LIKE 'pola';
| Bagian | Keterangan |
|---|---|
% | Mewakili nol atau banyak karakter apa saja. |
_ | Mewakili tepat satu karakter. |
Tanda [kurung siku] berarti bagian opsional. Kata kunci SQL tidak membedakan huruf besar-kecil, tapi menulisnya dengan huruf besar membuat query lebih mudah dibaca.
Contoh LIKE
Data contoh: karyawan
Tabel karyawan
| id | nama | dept_id | kota | gaji | tgl_masuk | atasan_id |
|---|---|---|---|---|---|---|
| 1 | Andi Pratama | 3 | Bandung | 12500000 | 2019-03-11 | NULL |
| 2 | Bunga Lestari | 1 | Jakarta | 9800000 | 2020-07-01 | NULL |
| 3 | Candra Wijaya | 3 | Bandung | 8200000 | 2021-02-15 | 1 |
| 4 | Dewi Anggraini | 2 | Jakarta | 7500000 | 2022-05-09 | 6 |
| 5 | Eko Saputra | 1 | Jakarta | 6900000 | 2023-01-16 | 2 |
| 6 | Fajar Nugroho | 2 | Surabaya | 11000000 | 2018-09-03 | NULL |
| 7 | Gita Permata | 3 | Jakarta | 8200000 | 2023-08-21 | 1 |
| 8 | Hendra Gunawan | NULL | Medan | 5500000 | 2024-04-02 | NULL |
SELECT nama
FROM karyawan
WHERE nama LIKE '%ra%';
Hasil 5 baris
| nama |
|---|
| Andi Pratama |
| Candra Wijaya |
| Dewi Anggraini |
| Eko Saputra |
| Hendra Gunawan |
Semua nama yang mengandung "ra" di mana pun posisinya. 'A%' berarti diawali A, '%a' berarti diakhiri a.
Cara kerjanya, langkah demi langkah
FROM karyawan: 8 nama diambil.- Setiap nama dicek apakah mengandung "ra". Tanda
%di depan dan belakang membolehkan huruf apa pun sebelum dan sesudahnya. - Yang cocok 5 nama: Pratama, Candra, Anggraini, Saputra, dan Hendra.
Dipakai untuk apa di kantor?
- Mencari pelanggan yang emailnya memakai domain tertentu, misalnya
LIKE '%@gmail.com'. - Mencari produk yang namanya mengandung kata "kopi".
- Menemukan kode transaksi dengan awalan tertentu.
Kesalahan yang sering terjadi
- Lupa tanda
%.LIKE 'ra'hanya cocok dengan teks yang isinya persis "ra". - Tidak sadar soal huruf besar-kecil. Di PostgreSQL,
LIKE 'a%'tidak menemukan "Andi". PakaiILIKEatauLOWER(nama) LIKE ....
IS NULL