MySQL - REGEXP_SUBSTR() Fungsi

Hai sana, para ahli basisdata masa depan! Hari ini, kita akan mengemban sebuah perjalanan menarik ke dunia fungsi REGEXP_SUBSTR() di MySQL. Jangan khawatir jika Anda baru saja memulai programming – saya akan menjadi panduan ramah Anda, menjelaskan segala sesuatu secara langkah demi langkah. Jadi, ambil secangkir kopi, dan mari kita masuk ke dalam!

MySQL - regexp_substr() Function

Apa itu REGEXP_SUBSTR()?

Sebelum kita mulai memanfaatkan kode, mari kita pahami apa itu REGEXP_SUBSTR(). Bayangkan Anda adalah seorang detektif yang mencari pola tertentu dalam string teks panjang. Itu tepat apa yang dilakukan REGEXP_SUBSTR() – itu seperti sebuah kaca pembesar super cerdas untuk basisdata Anda!

REGEXP_SUBSTR() adalah fungsi di MySQL yang menggunakan ekspresi regular untuk mencari dan mengambil pola tertentu dari string. Itu seperti memiliki pisau swiss untuk manipulasi teks dalam kotak alat basisdata Anda.

Sintaks

Berikut adalah penampilan fungsi REGEXP_SUBSTR():

REGEXP_SUBSTR(subject, pattern[, position[, occurrence[, match_type]]])

Jangan terintimidasi oleh ini! Kita akan membongkarnya piece by piece:

  • subject: String yang ingin kita cari (haystack kita)
  • pattern: Pola ekspresi regular yang kita cari (jarum kita)
  • position: Dimana untuk mulai mencari (opsional, default adalah 1)
  • occurrence: Mana yang harus dikembalikan jika ada beberapa (opsional, default adalah 1)
  • match_type: Opsi tambahan untuk pencocokan (opsional)

Penggunaan Dasar

Mari kita mulai dengan contoh sederhana untuk merasakan air:

SELECT REGEXP_SUBSTR('Hello, World!', 'World') AS result;

Jika Anda menjalankan query ini, Anda akan mendapat:

result
World

Apa yang terjadi di sini? Kita meminta MySQL untuk mencari kata 'World' dalam string 'Hello, World!', dan itu berhasil!

Menjadi Lebih Kreatif

Sekarang, mari kita coba sesuatu yang sedikit lebih menantang. Misalnya, kita memiliki daftar alamat email, dan kita ingin mengambil hanya nama domain:

SELECT REGEXP_SUBSTR('[email protected]', '@(.+)$') AS domain;

Hasil:

domain
@example.com

Ups! Kita mendapat simbol '@' juga. Mari kita memperbaiki pola kita:

SELECT REGEXP_SUBSTR('[email protected]', '@(.+)$', 1, 1, 'c') AS domain;

Hasil:

domain
example.com

Lebih baik! Huruf 'c' dalam parameter match_type memberitahu MySQL untuk mengembalikan grup yang ditangkap (bagian dalam kurung) bukan keseluruhan pencocokan.

Bekerja dengan Data Nyata

Mari kita buat tabel kecil untuk berlatih:

CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(100)
);

INSERT INTO users (email) VALUES
('[email protected]'),
('[email protected]'),
('[email protected]');

Sekarang, mari kita ekstrak semua nama domain:

SELECT email, REGEXP_SUBSTR(email, '@(.+)$', 1, 1, 'c') AS domain
FROM users;

Hasil:

email domain
[email protected] gmail.com
[email protected] yahoo.com
[email protected] hotmail.com

Apakah itu menarik? Dengan hanya satu query, kita telah mengambil semua nama domain!

Teknik Tingkat Lanjut

Beberapa Kecurrence

kadang-kadang, Anda mungkin ingin menemukan beberapa kecurrence dari pola. Mari kita lihat bagaimana:

SELECT REGEXP_SUBSTR('apple,banana,cherry,date', '[^,]+', 1, 1) AS first_fruit,
REGEXP_SUBSTR('apple,banana,cherry,date', '[^,]+', 1, 2) AS second_fruit,
REGEXP_SUBSTR('apple,banana,cherry,date', '[^,]+', 1, 3) AS third_fruit;

Hasil:

first_fruit second_fruit third_fruit
apple banana cherry

Di sini, kita menggunakan [^,]+ untuk mencocokkan semua karakter yang bukan koma. Angka di akhir (1, 2, 3) memberitahu MySQL kecurrence mana yang harus dikembalikan.

Pencocokan Tak Peka Huruf

Apa bila kita ingin mencocokkan pola tanpa menghiraukan huruf besar kecil? Kita dapat menggunakan opsi 'i':

SELECT REGEXP_SUBSTR('The Quick Brown Fox', 'quick', 1, 1, 'i') AS result;

Hasil:

result
Quick

Meskipun kita mencari 'quick' dalam huruf kecil, kita menemukan 'Quick' dalam string!

Fungsi REGEXP_SUBSTR() Menggunakan Program Klien

Meskipun MySQL Workbench sangat bagus untuk menjalankan query, Anda juga dapat menggunakan REGEXP_SUBSTR() dalam berbagai bahasa pemrograman. Berikut adalah contoh cepat dalam Python:

import mysql.connector

# Terhubung ke basisdata MySQL Anda
cnx = mysql.connector.connect(user='your_username', password='your_password',
host='127.0.0.1', database='your_database')
cursor = cnx.cursor()

# Jalankan query menggunakan REGEXP_SUBSTR()
query = "SELECT REGEXP_SUBSTR('Hello, World!', 'World') AS result"
cursor.execute(query)

# Ambil dan cetak hasil
result = cursor.fetchone()
print(f"The result is: {result[0]}")

# Jangan lupa untuk menutup koneksi
cnx.close()

Skrip ini terhubung ke basisdata MySQL Anda, menjalankan query sederhana REGEXP_SUBSTR(), dan mencetak hasilnya.

Kesimpulan

Selamat! Anda baru saja mengambil langkah pertama ke dunia yang kuat REGEXP_SUBSTR(). Ingat, seperti alat detektif yang bagus, itu memerlukan latihan untuk menjadi ahli. Jangan takut untuk mencoba pola dan opsi yang berbeda.

Berikut adalah tabel praktis yang menggabungkan parameter REGEXP_SUBSTR():

Parameter Deskripsi Opsional?
subject String yang ingin dicari Tidak
pattern Pola ekspresi regular yang dicari Tidak
position Dimana untuk mulai mencari Ya
occurrence Mana yang harus dikembalikan Ya
match_type Opsi pencocokan tambahan (misalnya, 'c', 'i') Ya

Terus latih, dan segera Anda akan menjadi ahli dalam mengambil data dari string! Ingat, dalam dunia basisdata, kemampuan untuk memanipulasi dan mengambil data tertentu adalah suatu kekuatan. Dan sekarang, Anda sedang menuju untuk menjadi superhero!

Credits: Image by storyset