Jika Anda perlu mengganti substring dengan string lain di MariaDB, berikut adalah dua pendekatan yang dapat Anda gunakan.
REPLACE()
Fungsi
Di MariaDB, REPLACE()
fungsi dirancang khusus untuk menggantikan substring dalam string lain.
Anda memberikan tiga argumen saat memanggil fungsi. Ini adalah string, substring, dan string pengganti.
Contoh:
SELECT REPLACE('My dog likes to dig holes', 'dog', 'cat');
Hasil:
+----------------------------------------------------+ | REPLACE('My dog likes to dig holes', 'dog', 'cat') | +----------------------------------------------------+ | My cat likes to dig holes | +----------------------------------------------------+
Dalam hal ini kami mengganti substring dog
dengan cat
.
Jika string yang akan diganti terjadi beberapa kali dalam string, semua kemunculan akan diganti:
SELECT REPLACE('Black dogs and white dogs', 'dog', 'cat');
Hasil:
+----------------------------------------------------+ | REPLACE('Black dogs and white dogs', 'dog', 'cat') | +----------------------------------------------------+ | Black cats and white cats | +----------------------------------------------------+
REPLACE()
fungsi melakukan kecocokan peka huruf besar-kecil.
Lihat Bagaimana REPLACE()
Bekerja di MariaDB untuk lebih banyak contoh.
The REGEXP_REPLACE()
Fungsi
REGEXP_REPLACE()
fungsinya mirip dengan REPLACE()
fungsi, kecuali itu memungkinkan Anda untuk melakukan pencocokan pola menggunakan ekspresi reguler.
Ini membuat REGEXP_REPLACE()
lebih kuat dari REPLACE()
, karena Anda dapat mencocokkan dengan bagian string untuk mengganti substring yang akan lebih sulit atau tidak mungkin untuk dicocokkan jika hanya menggunakan REPLACE()
.
Contoh:
SELECT REGEXP_REPLACE('My cat has cuts', 'c.t', 'dog');
Hasil:
+-------------------------------------------------+ | REGEXP_REPLACE('My cat has cuts', 'c.t', 'dog') | +-------------------------------------------------+ | My dog has dogs | +-------------------------------------------------+
Ekspresi reguler bisa sangat kuat, dan contoh ini menggunakan contoh yang sangat sederhana. Untuk menggunakan REGEXP_REPLACE()
secara efektif, Anda harus mengetahui pola yang benar untuk digunakan untuk hasil yang diinginkan.
Anda juga dapat menyediakan string literal lengkap sebagai pola, seperti yang Anda gunakan dengan REPLACE()
fungsi.
Oleh karena itu, kita dapat menulis ulang contoh pertama pada halaman ini untuk menggunakan REGEXP_REPLACE()
bukannya REPLACE()
.
Berikut adalah contoh yang menjalankannya berdampingan untuk mengilustrasikan apa yang saya maksud:
SELECT
REPLACE('My dog likes to dig holes', 'dog', 'cat') AS "REPLACE()",
REGEXP_REPLACE('My dog likes to dig holes', 'dog', 'cat') AS "REGEXP_REPLACE()";
Hasil:
+---------------------------+---------------------------+ | REPLACE() | REGEXP_REPLACE() | +---------------------------+---------------------------+ | My cat likes to dig holes | My cat likes to dig holes | +---------------------------+---------------------------+
Juga, REGEXP_REPLACE()
fungsi mengikuti aturan sensitivitas huruf dari susunan yang efektif. Pencocokan dilakukan secara case insensitive untuk collation case insensitive, dan case sensitive untuk collation case sensitive dan untuk data biner. Namun, sensitivitas kasus susunan dapat diganti menggunakan (?i
) dan (?-i
) Bendera PCRE.
Lihat Bagaimana REGEXP_REPLACE()
Bekerja di MariaDB untuk contoh sensitivitas huruf besar dan banyak lagi.