🧚 Dengar! Beekeeper Studio adalah GUI database yang cepat, modern, dan open source Unduh
13 Januari 2026 Oleh Matthew Rathbone

LIKE memeriksa apakah teks cocok dengan sebuah pola, di mana % mewakili deretan karakter apa pun dan _ mewakili tepat satu karakter. Inilah cara mencari nilai yang mengandung, diawali, atau diakhiri dengan teks tertentu. Contoh-contohnya berlaku di PostgreSQL, MySQL, SQLite, dan SQL Server.

Cara menggunakan LIKE

LIKE membandingkan sebuah nilai dengan pola. Pola harus cocok dengan seluruh nilai, dengan dua wildcard untuk mengisi celahnya: % cocok dengan berapa pun jumlah karakter (termasuk nol) dan _ cocok dengan tepat satu karakter. NOT LIKE mengembalikan kebalikannya.

expression [NOT] LIKE pattern [ESCAPE escape_character]
-- In SQL Server, LIKE only works in a condition, such as a WHERE clause
SELECT 'Joe Bloggs' LIKE 'Jo%';
-- Output: true

SELECT 'Joe Bloggs' LIKE 'J_e%';
-- Output: true

SELECT 'Joe Bloggs' LIKE 'Bloggs';
-- Output: false

Yang terakhir bernilai false karena tanpa wildcard, pola harus sama persis dengan seluruh nilai. Dalam query, LIKE biasanya ditempatkan di klausa WHERE:

-- Input: customers
-- id | name
-- ---+-------------
-- 1  | Joe Bloggs
-- 2  | Jane Doe
-- 3  | Joanna Smith
-- 4  | Bob Jones

SELECT name
FROM customers
WHERE name LIKE 'Jo%';

-- Output:
-- name
-- ------------
-- Joe Bloggs
-- Joanna Smith

Aturan yang perlu diketahui

  • LIKE di PostgreSQL peka huruf besar-kecil. Database lain mengabaikan huruf besar-kecil secara default, tetapi di PostgreSQL 'Smith' LIKE 'smith' bernilai false. Ubah kedua sisi menjadi huruf kecil, seperti LOWER(name) LIKE '%smith%', jika huruf besar-kecil tidak penting.
  • NULL tidak pernah cocok. NULL LIKE '%' bernilai NULL, bukan true, sehingga baris dengan kolom NULL tidak diikutkan baik oleh LIKE maupun NOT LIKE. Tambahkan OR column IS NULL jika Anda ingin menyertakannya.
SELECT NULL LIKE '%';
-- Output: NULL
  • Escape % dan _ untuk mencocokkannya secara harfiah. Letakkan karakter escape di depan wildcard dan tentukan dengan ESCAPE:
-- Input: discounts
-- id | description
-- ---+---------------------
-- 1  | 50% off winter coats
-- 2  | Spend 50, save 10
-- 3  | Up to 25% off shoes

-- Without escaping, the % after 50 is a wildcard
SELECT * FROM discounts
WHERE description LIKE '%50%%';

-- Output:
-- id | description
-- ---+---------------------
-- 1  | 50% off winter coats
-- 2  | Spend 50, save 10

-- With ESCAPE '\', the \% matches a real percent sign
-- (in MySQL, write ESCAPE '\\': a single backslash escapes the quote)
SELECT * FROM discounts
WHERE description LIKE '%50\%%' ESCAPE '\';

-- Output:
-- id | description
-- ---+---------------------
-- 1  | 50% off winter coats
  • % di awal pola tidak bisa memakai index. Pencarian awalan seperti LIKE 'INV-2026-%' bisa memakai index pada kolom, tetapi LIKE '%widget%' harus memeriksa setiap baris. Untuk mencari kata dalam teks berukuran besar, gunakan full-text search dari database Anda.

Sintaks alternatif

Anda juga akan menemui tambahan khusus database berikut:

-- PostgreSQL: ILIKE ignores case
SELECT 'SMITH' ILIKE 'smith';
-- Output: true

-- SQL Server: [ ] in a LIKE pattern matches one character from a set or range
SELECT CASE WHEN 'B12' LIKE '[A-C]%' THEN 'match' ELSE 'no match' END;
-- Output: match

-- MySQL: REGEXP for regular expressions (PostgreSQL uses ~)
SELECT 'A12-345' REGEXP '^A[0-9]{2}-[0-9]{3}$';
-- Output: 1

Untuk memeriksa apakah teks mengandung string tetap, tanpa pola, cari posisinya. Hasilnya 0 jika string tersebut tidak ada:

SELECT INSTR('FinTech Corp', 'Tech');
-- Output: 4

-- PostgreSQL: POSITION('Tech' IN 'FinTech Corp')
-- SQL Server: CHARINDEX('Tech', 'FinTech Corp')

CONTAINS() di SQL Server bukan pengecekan substring: ini adalah predikat full-text search yang membutuhkan full-text index.

Kapan sebaiknya menggunakan LIKE?

Gunakan LIKE saat Anda tahu sebagian nilai, tapi tidak seluruhnya. Sebagian besar penggunaannya termasuk salah satu dari empat kasus berikut.

Mencari teks yang mengandung sebuah kata

Letakkan % di kedua sisi kata. '%Tech%' cocok dengan “Tech Solutions Inc”, “FinTech Corp”, dan “Technology Partners”, karena pola ini juga cocok di dalam kata yang lebih panjang.

Mencocokkan awal atau akhir nilai

Letakkan % hanya di akhir untuk mencocokkan awalan, seperti 'INV-2026-%', atau hanya di awal untuk mencocokkan akhiran, seperti '%.pdf' atau '%@gmail.com'. Pencarian awalan adalah yang bisa dipercepat dengan index.

Mencocokkan format tetap

_ mewakili tepat satu karakter, sehingga pola bisa menggambarkan bentuk sebuah nilai: '___-___-____' untuk nomor telepon, 'A__-___' untuk kode produk. Dengan NOT LIKE, pola yang sama akan menemukan nilai yang tidak sesuai format.

Mencari tanpa memedulikan huruf besar-kecil

Pengguna mengetik “smith”; datanya tertulis “Smith”. Ubah kedua sisi menjadi huruf kecil dengan LOWER() dan pencarian akan mengabaikan huruf besar-kecil, bahkan di PostgreSQL.

Contoh nyata LIKE

Mencari salah satu dari beberapa kata

Gabungkan pola dengan OR untuk menemukan produk yang cocok dengan salah satunya:

-- Input: products
-- id | name
-- ---+-----------------
-- 1  | Gaming laptop
-- 2  | Spiral notebook
-- 3  | Desk lamp
-- 4  | Desktop computer

SELECT * FROM products
WHERE name LIKE '%laptop%'
   OR name LIKE '%notebook%'
   OR name LIKE '%computer%';

-- Output:
-- id | name
-- ---+-----------------
-- 1  | Gaming laptop
-- 2  | Spiral notebook
-- 4  | Desktop computer

Mencari invoice tahun ini

Nomor invoice diawali dengan jenis dan tahun, sehingga pola awalan bisa memilih invoice tahun 2026 dan melewatkan nota kredit:

-- Input: invoices
-- invoice_no    | customer
-- --------------+----------
-- INV-2026-0012 | Northwind
-- INV-2025-0981 | Contoso
-- CN-2026-0003  | Northwind
-- INV-2026-0040 | Fabrikam

SELECT * FROM invoices
WHERE invoice_no LIKE 'INV-2026-%';

-- Output:
-- invoice_no    | customer
-- --------------+----------
-- INV-2026-0012 | Northwind
-- INV-2026-0040 | Fabrikam

Mencari nomor telepon dengan format yang salah

Satu _ per karakter menggambarkan format yang Anda harapkan, dan NOT LIKE menampilkan baris yang perlu dibersihkan:

-- Input: customers
-- name      | phone
-- ----------+---------------
-- Ana Lima  | 555-010-1234
-- Ben Ode   | (555) 010-9876
-- Cara Diaz | 5550104321
-- Dev Rao   | 555-010-5555

SELECT name, phone FROM customers
WHERE phone NOT LIKE '___-___-____';

-- Output:
-- name      | phone
-- ----------+---------------
-- Ben Ode   | (555) 010-9876
-- Cara Diaz | 5550104321

Mencari nama keluarga tanpa memedulikan huruf besar-kecil

Nama yang diketik dengan huruf kapital atau huruf kecil tetap ditemukan jika kedua sisi diubah menjadi huruf kecil:

-- Input: customers
-- id | name
-- ---+------------
-- 1  | Anna Smith
-- 2  | BEN SMITH
-- 3  | Dana Jones
-- 4  | carla smith

SELECT * FROM customers
WHERE LOWER(name) LIKE '%smith%';

-- Output:
-- id | name
-- ---+------------
-- 1  | Anna Smith
-- 2  | BEN SMITH
-- 4  | carla smith

Bacaan lanjutan tentang LIKE

Di blog ini:

Dokumentasi resmi:

Beekeeper Studio Adalah GUI Database Gratis & Open Source

Tool query & editor SQL terbaik yang pernah saya pakai. Semua yang saya butuhkan untuk mengelola database ada di sini. - ⭐⭐⭐⭐⭐ Mit

Beekeeper Studio cepat, intuitif, dan mudah digunakan. Beekeeper mendukung banyak sekali database, dan berjalan mulus di Windows, Mac, dan Linux.

Versi Linux Beekeeper punya fitur 100% lengkap, tanpa potong kompas, tanpa kompromi fitur.

Apa Kata Pengguna Tentang Beekeeper Studio

★★★★★
"Beekeeper Studio sepenuhnya menggantikan alur kerja SQL lama saya. Cepat, intuitif, dan membuat pekerjaan database kembali menyenangkan."
— Alex K., Database Developer
★★★★★
"Saya sudah mencoba banyak GUI database, tapi Beekeeper punya keseimbangan sempurna antara fitur dan kesederhanaan. Langsung berfungsi."
— Sarah M., Full Stack Engineer

Siap Meningkatkan Alur Kerja SQL Anda?

download Unduh Gratis