MySQL REGEXP_LIKE() Fungsi: Panduan untuk Pemula

Hai teman-teman, para ahli basis data masa depan! Hari ini, kita akan memulai perjalanan yang menarik ke dalam dunia MySQL dan menjelajahi fungsi yang kuat bernama REGEXP_LIKE(). Jangan khawatir jika Anda belum pernah menulis baris kode sebelumnya – saya akan menjadi panduan ramah Anda, dan kita akan mengambil langkah ini secara bertahap. Pada akhir panduan ini, Anda akan dapat menggunakan ekspresi regular seperti seorang ahli!

MySQL - regexp_like() Function

Apa Itu REGEXP_LIKE()?

Sebelum kita masuk ke detail, mari kita memahami apa yang dimaksudkan dengan REGEXP_LIKE(). Bayangkan Anda adalah seorang detektif yang mencari pola tertentu di laut teks. Itu tepat apa yang dilakukan REGEXP_LIKE() – itu mencari pola di data Anda menggunakan sesuatu yang disebut ekspresi regular (regex untuk pendek).

Dasar-Dasar

REGEXP_LIKE() adalah fungsi di MySQL yang mengembalikan 1 (benar) jika string cocok dengan pola ekspresi regular, dan 0 (salah) jika tidak. Itu seperti bertanya, "Hai MySQL, teks ini seperti apa yang saya cari?"

Mari kitauraikan sintaksenya:

REGEXP_LIKE(expr, pattern[, match_type])
  • expr: Ini adalah teks yang ingin Anda cari.
  • pattern: Ini adalah pola ekspresi regular yang Anda cari.
  • match_type: Ini opsional dan memungkinkan Anda menentukan bagaimana Anda ingin mencocokkan (sensitif huruf besar/kecil, multi baris, dll.).

Memulai dengan REGEXP_LIKE()

Query Pertama REGEXP_LIKE() Anda

Marilah kita mulai dengan contoh sederhana. Misalnya kita memiliki tabel books dengan kolom title. Kita ingin menemukan semua buku yang memiliki kata "SQL" di judulnya.

SELECT title
FROM books
WHERE REGEXP_LIKE(title, 'SQL');

Query ini akan mengembalikan semua judul buku yang mengandung "SQL", tanpa memperhatikan besar kecil huruf (SQL, sql, SqL, dll.).

Kesensitifan Huruf Besar/Kecil

Apa bila kita ingin lebih spesifik dan mencocokkan hanya "SQL" dalam huruf besar? Kita dapat menggunakan parameter match_type:

SELECT title
FROM books
WHERE REGEXP_LIKE(title, 'SQL', 'c');

'c' memberitahu MySQL untuk melakukan pencocokkan yang sensitif huruf besar/kecil.

Pencocokan Pola Lanjut

Sekarang kita mulai merasakan betapa mudahnya itu, mari kita jelajahi beberapa pola yang lebih lanjut!

Pencocokan di Awal atau Akhir

Untuk mencocokkan pola di awal string, gunakan '^':

SELECT title
FROM books
WHERE REGEXP_LIKE(title, '^The');

Ini akan menemukan semua buku yang dimulai dengan "The".

Untuk mencocokkan di akhir, gunakan '$':

SELECT title
FROM books
WHERE REGEXP_LIKE(title, 'Edition$');

Ini menemukan buku yang berakhir dengan "Edition".

Pencocokan Beberapa Pola

Ingin menemukan buku tentang SQL atau Python? Tidak masalah!

SELECT title
FROM books
WHERE REGEXP_LIKE(title, 'SQL|Python');

`'|`` berperan seperti operator "OR" dalam regex.

Pencocokan Karakter di Rentang

Misalnya kita ingin menemukan buku dengan nomor di judulnya:

SELECT title
FROM books
WHERE REGEXP_LIKE(title, '[0-9]');

Ini akan mencocokkan semua judul yang mengandung digit dari 0 hingga 9.

Contoh Dunia Nyata

Contoh 1: Menemukan Alamat Email

Bayangkan Anda memiliki tabel customers dan ingin memvalidasi alamat email:

SELECT email
FROM customers
WHERE REGEXP_LIKE(email, '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$');

Pola ini memeriksa format email yang valid. Mari kitauraikan ini:

  • ^[A-Za-z0-9._%+-]+: Dimulai dengan satu atau lebih huruf, angka, atau simbol tertentu
  • @: Diikuti oleh simbol @
  • [A-Za-z0-9.-]+: Kemudian satu atau lebih huruf, angka, titik, atau tanda hubung
  • \\.[A-Za-z]{2,}$: Diakhiri dengan titik dan setidaknya dua huruf

Contoh 2: Mencari Nomor Telepon

Marilah kita mencari nomor telepon dalam format tertentu:

SELECT phone
FROM contacts
WHERE REGEXP_LIKE(phone, '^\\+1-[0-9]{3}-[0-9]{3}-[0-9]{4}$');

Pola ini mencocokkan nomor telepon seperti +1-123-456-7890.

Fungsi REGEXP_LIKE() Dalam Program Klien

Ketika Anda bekerja dengan program klien MySQL seperti MySQL command-line client, Anda dapat menggunakan REGEXP_LIKE() dalam query Anda seperti yang telah kita contohkan. Berikut adalah cara Anda mungkin menggunakannya dalam program klien:

  1. Terhubung ke basis data MySQL Anda:

    mysql -u your_username -p your_database_name
  2. Setelah terhubung, Anda dapat menjalankan query menggunakan REGEXP_LIKE():

    SELECT * FROM your_table WHERE REGEXP_LIKE(your_column, 'your_pattern');

Ingat, kekuatan REGEXP_LIKE() adalah bahwa itu bekerja secara mulus baik Anda menggunakan tool GUI, klien command-line, atau menyertakan SQL di kode aplikasi Anda!

Kesimpulan

Selamat! Anda telah mengambil langkah pertama ke dalam dunia yang kuat dari ekspresi regular di MySQL. REGEXP_LIKE() adalah fungsi multifungsi yang dapat membantu Anda menemukan pola di data Anda yang sulit atau mustahil ditemukan dengan perbandingan LIKE sederhana.

Ingat, latihan membuat sempurna. Cobalah membuat pola Anda sendiri dan uji mereka pada data contoh. Sebelum Anda tahu, Anda akan menggunakan REGEXP_LIKE() untuk mengungkap kebenaran di basis data Anda seperti seorang detektif data sejati!

Selamat menjalankan query, dan may your regular expressions always find their match!

Credits: Image by storyset