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!
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:
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