MySQL - Operator RLIKE

Halo, para entusiastik basis data yang sedang berkembang! Hari ini, kita akan memulai perjalanan yang menarik ke dunia operator RLIKE di MySQL. Sebagai guru ilmu komputer yang ramah di lingkungan sekitar Anda, saya di sini untuk membimbing Anda melalui topik ini dengan banyak contoh dan penjelasan. Jadi, siapkan notepad virtual Anda, dan mari kita masuk ke dalamnya!

MySQL - RLIKE Operator

Operator RLIKE MySQL

Apa itu RLIKE?

RLIKE adalah operator yang kuat di MySQL yang memungkinkan kita untuk melakukan pencocokan pola menggunakan ekspresi regular. Saya tahu apa yang Anda pikirkan - "Ekspresi regular? Itu terdengar menakutkan!" Tetapi jangan khawatir, kita akan membongkar itu langkah demi langkah.

Pikirkan RLIKE sebagai alat pencarian super cerdas. Itu seperti memiliki detektif di basis data Anda 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 mencari, dan pattern adalah ekspresi regular yang kita ingin cocokkan.

Mari kita 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 memikirkan ini sebagai kode rahasia yang digunakan detektif basis data kita untuk memecahkan misteri!

Pola Deskripsi Contoh
^ Cocok di awal string '^A' cocok 'Apple' tapi tidak 'Banana'
$ Cocok di akhir string 'e$' cocok 'Apple' tapi tidak 'Banana'
. Cocok dengan karakter tunggal apa pun 'b.t' cocok 'bat', 'bit', 'but', dll.
* Cocok nol atau lebih banyak kejadian karakter sebelumnya 'go*gle' cocok 'ggle', 'google', 'gooogle', dll.
+ Cocok satu atau lebih banyak kejadian karakter sebelumnya 'go+gle' cocok 'google', 'gooogle' tapi tidak 'ggle'
[] Cocok karakter tunggal dalam kurung '[aeiou]' cocok setiap vokal
[^] Cocok karakter tunggal di luar 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 banyak karakter apa pun". 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' benar-benar 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. Ini adalah cara kita dapat melakukannya:

SELECT * FROM users WHERE email RLIKE '^[A-Za-z0-9._%+-]+@gmail\\.com$';

Wah, itu terlihat sulit! Mari kita pecahkan itu:

  • ^ : Awal string
  • [A-Za-z0-9._%+-]+ : Satu atau lebih huruf, angka, atau karakter spesial yang diperbolehkan dalam alamat email
  • @ : Simbol @
  • gmail\\.com : Secara literal "gmail.com" (kita perlu menghindari titik dengan backslash)
  • $ : Akhir string

Pola ini akan cocok dengan setiap alamat Gmail standar.

Ini adalah cerita kecil dari pengalaman mengajar saya: Pernah ada seorang murid yang mencoba menemukan semua pengguna dengan alamat email AOL dalam basis data. Dia mencoba untuk memeriksa setiap entri secara manual (ada ribuan entri!). Ketika saya menunjukkan bagaimana 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 (dihindari 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 semua kekuatan super, gunakanlah dengan bijak. Selamat mencari, para ahli basis data masa depan!

Credits: Image by storyset