MySQL - RLIKE Operator
Hai, penggemar basis data yang bersemangat! Hari ini, kita akan memulai perjalanan menarik ke dalam dunia operator RLIKE di MySQL. Sebagai guru ilmu komputer yang ramah di lingkungan Anda, saya di sini untuk mengarahkan Anda melalui topik ini dengan banyak contoh dan penjelasan. Jadi, ambil papan tulis maya Anda, dan mari kita masuk ke dalamnya!
Operator RLIKE MySQL
Apa itu RLIKE?
RLIKE adalah operator yang kuat di MySQL yang memungkinkan kita melakukan pencocokan pola menggunakan ekspresi regular. Saya tahu apa yang Anda pikirkan - "Ekspresi regular? Itu terdengar menakutkan!" Tetapi jangan khawatir, kita akan memecahkannya langkah demi langkah.
Pertimbangkan RLIKE sebagai alat pencarian super cerdas. Itu seperti memiliki detektif di basis datamu yang dapat menemukan informasi berdasarkan pola yang kompleks. Menarik, kan?
Sintaks Dasar
Sintaks dasar operator RLIKE adalah:
expr RLIKE pattern
Di sini, expr
adalah ekspresi (biasanya nama kolom) yang kita ingin cari, dan pattern
adalah ekspresi regular yang kita ingin cocokkan.
mari mulai dengan contoh sederhana:
SELECT * FROM customers WHERE last_name RLIKE 'son$';
Kueri ini akan menemukan semua pelanggan yang namanya berakhir dengan 'son'. Simbol $
dalam pola berarti "akhir string". Jadi, itu akan cocok dengan nama seperti Johnson, Wilson, atau Anderson.
Pola yang digunakan dengan RLIKE
Sekarang, mari kita lihat beberapa pola umum yang kita dapat gunakan dengan RLIKE. Saya suka menganggap ini sebagai kode rahasia detektif basis data kita untuk memecahkan misteri!
Pola | Deskripsi | Contoh |
---|---|---|
^ | Cocok dengan awal string | '^A' cocok 'Apple' tapi bukan 'Banana' |
$ | Cocok dengan akhir string | 'e$' cocok 'Apple' tapi bukan 'Banana' |
. | Cocok dengan karakter tunggal mana saja | 'b.t' cocok 'bat', 'bit', 'but', dll. |
* | Cocok dengan nol atau lebih kejadian karakter sebelumnya | 'go*gle' cocok 'ggle', 'google', 'gooogle', dll. |
+ | Cocok dengan satu atau lebih kejadian karakter sebelumnya | 'go+gle' cocok 'google', 'gooogle' tapi bukan 'ggle' |
[] | Cocok dengan karakter tunggal di dalam kurung | '[aeiou]' cocok setiap vokal |
[^] | Cocok dengan karakter tunggal yang tidak di dalam kurung | '[^0-9]' cocok setiap non-digit |
Mari kita gunakan beberapa dari ini!
SELECT * FROM products WHERE name RLIKE '^A.*e$';
Kueri ini menemukan semua produk yang namanya dimulai dengan 'A' dan berakhir dengan 'e'. .*
di tengah artinya "nol atau lebih karakter mana saja". Jadi ini akan cocok dengan nama seperti "Apple", "Airplane", atau bahkan hanya "Ae".
RLIKE Pada String
RLIKE tidak hanya untuk mencari di tabel. Kita juga dapat menggunakannya langsung pada string! Ini sangat baik untuk menguji pola kita sebelum menggunakannya dalam kueri.
SELECT 'MySQL' RLIKE 'SQL$';
Ini akan mengembalikan 1 (benar) karena 'MySQL' sungguh saja berakhir dengan 'SQL'.
Ini adalah yang menyenangkan:
SELECT 'Mississippi' RLIKE 's+is+';
Ini mengembalikan 1 karena 'Mississippi' mengandung satu atau lebih 's' diikuti oleh 'i' diikuti oleh satu atau lebih 's'. Itu cocok 'ssis' di tengah kata.
Operator RLIKE Menggunakan Program Klien
Sekarang, mari kita lihat bagaimana kita dapat menggunakan RLIKE dalam situasi yang lebih kompleks. Bayangkan kita memiliki tabel alamat email, dan kita ingin menemukan semua alamat Gmail. Berikut adalah cara kita dapat melakukannya:
SELECT * FROM users WHERE email RLIKE '^[A-Za-z0-9._%+-]+@gmail\\.com$';
Wah, itu terlihat sulit! Mari kitauraikan ini:
-
^
: Awal string -
[A-Za-z0-9._%+-]+
: Satu atau lebih huruf, angka, atau karakter khusus yang diperbolehkan dalam alamat email -
@
: Simbol @ -
gmail\\.com
: Secara literal "gmail.com" (kita perlu mengungkapkan tanda titik dengan backslash) -
$
: Akhir string
Pola ini akan cocok dengan semua alamat Gmail standar.
Ini adalah cerita kecil dari pengalaman mengajar saya: Saya pernah memiliki siswa yang mencoba menemukan semua pengguna dengan alamat email AOL di basis data. Dia mencoba memeriksa setiap entri secara manual (ada ribuan entri!). Ketika saya menunjukkan kepadanya cara melakukannya dengan RLIKE, dia sangat gembira hingga hampir menari di kelas!
Waktu Latihan!
Mari kitaakhiri dengan latihan yang menyenangkan. Bisakah Anda menulis pola RLIKE untuk menemukan semua nomor telepon dalam format (XXX) XXX-XXXX? Cobalah, dan kemudian periksa jawaban di bawah!
SELECT * FROM contacts WHERE phone RLIKE '^\\\([0-9]{3}\\\) [0-9]{3}-[0-9]{4}$';
Pola ini cocok:
-
^\\\(
: Dimulai dengan buka kurung (diungkapkan dua kali karena itu spesial dalam regex dan MySQL) -
[0-9]{3}
: Tiga digit tepat -
\\\)
: Tutup kurung - ` ` : Spasi
-
[0-9]{3}
: Tiga digit lagi -
-
: Tanda minus -
[0-9]{4}
: Empat digit terakhir -
$
: Akhir string
Dan itu adalah! Anda sekarang dilengkapi dengan kekuatan RLIKE. Ingat, seperti setiap kekuatan super, gunakanlah dengan bijak. Selamat berkueri, para ahli basis data masa depan!
Credits: Image by storyset