Panduan Lengkap SQL LIKE Query: Dasar, Penggunaan, dan Optimasi

2
Tabula
Ditulis 08 June 2025 Baca ± 4 menit
Panduan Lengkap SQL LIKE Query: Dasar, Penggunaan, dan Optimasi

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.

Diperbarui pada 14 June 2025