Panduan Lengkap SQL LIKE Query: Dasar, Penggunaan, dan Optimasi
Tabula
Ditulis 08 June 2025 Baca ± 4 menit
SQL adalah bahasa standar yang umum digunakan untuk mengelola dan memanipulasi database relasional (RDBMS). Salah satu fitur dasar yang sangat sering digunakan dalam SQL adalah klausa LIKE. Klausa ini digunakan untuk melakukan pencarian pola dalam kolom teks, yang berguna saat kita ingin mencari informasi atau data tertentu tanpa mengetahui secara pasti data lengkapnya.
Dalam artikel ini, kita akan membahas secara lengkap tentang SQL LIKE, mulai dari pengertian, cara kerja, pola wildcard, contoh penggunaannya, hingga tips optimasi untuk performa yang lebih baik. Artikel ini sangat cocok bagi pemula yang ingin belajar memahami SQL lebih dalam, maupun praktisi yang ingin mengoptimalkan pencarian berbasis teks di sistem mereka.
Apa Itu SQL LIKE?
LIKE adalah klausa dalam SQL yang digunakan untuk mencocokkan nilai dalam kolom terhadap pola tertentu. Biasanya digunakan dalam pernyataan WHERE untuk mencari data yang mengandung sebagian teks (substring), bukan pencocokan eksak seperti =.
Sintaks Dasar:
SELECT column1, column2 FROM table_name WHERE column_name LIKE pattern;
Contoh Sederhana:
SELECT * FROM customers WHERE name LIKE 'A%';
Query di atas akan mencari semua pelanggan yang namanya dimulai dengan huruf "A".
Wildcard dalam LIKE
Wildcard adalah karakter khusus yang digunakan untuk membentuk pola pencarian.
1. % (percent sign)
Menandakan nol atau lebih karakter.
SELECT * FROM products WHERE name LIKE '%cake'; -- semua produk yang diakhiri dengan 'cake'
2. _ (underscore)
Menandakan satu karakter tunggal.
SELECT * FROM users WHERE username LIKE '_ohn'; -- cocok dengan 'John', 'tohn'
3. Kombinasi Wildcard
SELECT * FROM files WHERE filename LIKE 'report_%.pdf';
Query ini mencari semua file yang namanya diawali dengan "report_" dan berekstensi ".pdf".
Studi Kasus Penggunaan LIKE
1. Pencarian Nama Parsial
Dalam aplikasi toko online:
SELECT * FROM products WHERE name LIKE '%baju%';
Menemukan semua produk yang mengandung kata "baju".
2. Validasi Format
Menemukan email dengan domain tertentu:
SELECT * FROM users WHERE email LIKE '%@gmail.com';
3. Deteksi Nomor Telepon Regional
SELECT * FROM customers WHERE phone LIKE '08%';
4. Audit atau Debug Data
Mencari entri aneh atau placeholder:
SELECT * FROM articles WHERE title LIKE '%lorem%';
LIKE dan Case Sensitivity
Perilaku case sensitivity (peka huruf kapital) dari LIKE tergantung pada database:
- MySQL: Case-insensitive secara default (kecuali collation diubah)
- PostgreSQL: Case-sensitive, gunakan ILIKE untuk pencarian tidak sensitif huruf besar/kecil
- SQL Server: Bergantung pada collation kolom
Contoh di PostgreSQL:
SELECT * FROM users WHERE name ILIKE 'a%'; -- cocok dengan 'Alice', 'alice'
LIKE vs = Operator
Operator |
Fungsi |
Contoh Penggunaan |
= |
Pencocokan eksak |
name = 'John' |
LIKE |
Pencocokan pola |
name LIKE 'Jo%' |
Gunakan LIKE saat kamu tidak tahu nilai lengkapnya atau ingin mencari bagian dari teks.
Kinerja dan Optimasi LIKE Query
Meskipun mudah digunakan, query LIKE dapat memperlambat performa jika tidak dioptimalkan:
1. Hindari Pola Awal dengan %
-- Buruk untuk indeks: SELECT * FROM logs WHERE message LIKE '%error';
Ini membuat indeks tidak bisa digunakan, karena karakter pertama tidak pasti.
2. Gunakan Pola yang Dimulai dengan Karakter Spesifik
SELECT * FROM logs WHERE message LIKE 'error%';
Pola ini memungkinkan penggunaan indeks.
3. Buat Full-Text Index untuk Dataset Besar
Jika database mendukung (MySQL, PostgreSQL), gunakan fitur Full-TextSearch untuk performa lebih baik.
4. Gunakan Index Kolom
Pastikan kolom tempat LIKE digunakan memiliki indeks jika sering dicari.
5. Pertimbangkan COLLATION
Gunakan collation yang sesuai untuk menghindari pencarian case-sensitive jika tidak diperlukan.
Perbedaan LIKE dengan Regex
SQL LIKE hanya mendukung pencarian pola dasar, tidak seperti regex (regular expression) yang lebih fleksibel dan kompleks.
Contoh (PostgreSQL):
SELECT * FROM users WHERE username ~ '^[a-z]{3}[0-9]+$';
Gunakan regex jika pola pencarian terlalu kompleks untuk diwakili oleh LIKE.
Kesimpulan
SQL LIKE adalah alat dasar yang sangat berguna dalam pencarian data berbasis teks. Dengan pemahaman yang tepat, kamu dapat menggunakannya untuk berbagai kasus seperti pencarian parsial, validasi data, dan audit. Namun, untuk dataset besar atau kebutuhan pencarian lanjutan, sebaiknya pertimbangkan Full-Text Search atau bahkan integrasi dengan ElasticSearch.
Selalu perhatikan penggunaan wildcard, indeks, dan struktur kolom agar performa tetap optimal. Klausa LIKE mungkin sederhana, tetapi ketika digunakan secara cerdas, dapat menjadi alat yang sangat efektif dalam toolkit SQL kamu.
Leave a comment