Di MySQL, REGEXP_LIKE()
fungsi digunakan untuk menentukan apakah string cocok dengan ekspresi reguler atau tidak.
Fungsi mengembalikan 1
jika string cocok dengan ekspresi reguler yang disediakan, dan 0
jika tidak.
Sintaks
Sintaksnya seperti ini:
REGEXP_LIKE(expr, pat[, match_type])
Dimana expr
adalah string input dan pat
adalah ekspresi reguler yang Anda uji stringnya.
match_type
opsional argumen memungkinkan Anda untuk memperbaiki ekspresi reguler. Misalnya, Anda dapat menggunakan match_type
untuk menentukan pencocokan peka huruf besar-kecil atau tidak.
Contoh 1 – Penggunaan Dasar
Berikut ini contoh dasarnya:
SELECT REGEXP_LIKE('Cat', '.*') Result;
Hasil:
+--------+ | Result | +--------+ | 1 | +--------+
Dalam hal ini, ekspresi reguler kami menentukan karakter apa pun dalam urutan apa pun, jadi tentu saja kami mendapatkan kecocokan. Fungsi mengembalikan 1
untuk menunjukkan kecocokan.
Contoh 2 – Tidak Cocok
Berikut adalah contoh di mana string input tidak cocok dengan ekspresi reguler:
SELECT REGEXP_LIKE('Cat', 'b+') Result;
Hasil:
+--------+ | Result | +--------+ | 0 | +--------+
Dalam hal ini, ekspresi reguler kami menetapkan bahwa harus ada satu atau lebih b
karakter dalam urutan apa pun. String input kami tidak berisi karakter ini dan karenanya 0
dikembalikan.
Contoh 3 – Mencocokkan Awal Sebuah String
Berikut adalah contoh di mana ekspresi reguler menentukan bahwa string harus dimulai dengan karakter tertentu:
SELECT REGEXP_LIKE('Cat', '^Ca') Result;
Hasil:
+--------+ | Result | +--------+ | 1 | +--------+
Dan inilah yang terjadi jika tidak ada yang cocok:
SELECT REGEXP_LIKE('Cat', '^Da') Result;
Hasil:
+--------+ | Result | +--------+ | 0 | +--------+
Contoh 4 – Kueri Basis Data
Fungsi ini dapat digunakan di WHERE
klausa kueri basis data untuk mengembalikan hanya baris yang berisi pola:
SELECT AlbumId, AlbumName FROM Albums WHERE REGEXP_LIKE(AlbumName, '^Power');
Hasil:
+---------+------------+ | AlbumId | AlbumName | +---------+------------+ | 1 | Powerslave | | 2 | Powerage | +---------+------------+
Berikut tabel lengkapnya:
SELECT AlbumId, AlbumName FROM Albums;
Hasil:
+---------+--------------------------+ | AlbumId | AlbumName | +---------+--------------------------+ | 1 | Powerslave | | 2 | Powerage | | 3 | Singing Down the Lane | | 4 | Ziltoid the Omniscient | | 5 | Casualties of Cool | | 6 | Epicloud | | 7 | Somewhere in Time | | 8 | Piece of Mind | | 9 | Killers | | 10 | No Prayer for the Dying | | 11 | No Sound Without Silence | | 12 | Big Swing Face | | 13 | Blue Night | | 14 | Eternity | | 15 | Scandinavia | | 16 | Long Lost Suitcase | | 17 | Praise and Blame | | 18 | Along Came Jones | | 19 | All Night Wrong | | 20 | The Sixteen Men of Tain | +---------+--------------------------+
Contoh 5 – match_type
Argumen
Anda dapat memberikan argumen tambahan untuk menentukan jenis pencocokan. Ini memungkinkan Anda untuk menentukan hal-hal seperti apakah kecocokan peka huruf besar-kecil atau tidak, apakah akan menyertakan terminator baris atau tidak, dll.
Berikut adalah contoh menentukan kecocokan peka huruf besar-kecil dan kecocokan peka huruf besar/kecil:
SELECT REGEXP_LIKE('Cat', '^ca', 'c') 'Case-Sensitive', REGEXP_LIKE('Cat', '^ca', 'i') 'Case-Insensitive';
Hasil:
+----------------+------------------+ | Case-Sensitive | Case-Insensitive | +----------------+------------------+ | 0 | 1 | +----------------+------------------+
match_type
argumen dapat berisi karakter berikut:
c
- Pencocokan peka huruf besar/kecil.
i
- Pencocokan peka huruf besar/kecil.
m
- Mode banyak baris. Kenali terminator garis di dalam string. Perilaku default adalah mencocokkan terminator baris hanya di awal dan akhir ekspresi string.
n
.
karakter cocok dengan terminator garis. Standarnya adalah untuk.
cocok untuk berhenti di akhir baris.u
- Akhir baris khusus Unix. Hanya karakter baris baru yang dikenali sebagai baris yang diakhiri dengan
.
,^
, dan$
operator pertandingan.
Contoh Lainnya
Anda dapat melihat lebih banyak contoh ekspresi reguler dasar di Contoh REGEXP MySQL. REGEXP
adalah sinonim untuk REGEXP_LIKE()
, sehingga Anda dapat menggunakan contoh secara bergantian.
Lihat juga Sintaks Ekspresi Reguler dari dokumentasi MySQL.