Oleh itu, manipulasi rentetan ialah tugas biasa yang melibatkan memanipulasi dan mengubah nilai rentetan kepada format tertentu.
Salah satu fungsi paling berkuasa dalam SQL yang berkaitan dengan operasi rentetan ialah fungsi REGEXP_REPLACE(). Fungsi ini membolehkan kami melakukan carian berasaskan ungkapan biasa dan menggantikan. Jika anda biasa dengan ungkapan biasa, anda tahu betapa hebatnya fungsi ini.
Dalam tutorial ini, kita akan belajar bagaimana kita boleh menggunakan fungsi ini untuk mencari dan menggantikan rentetan dalam pangkalan data SQL.
SQL REGEXP_REPLACE
SQL REGEXP_REPLACE() ialah fungsi yang membolehkan kami melaksanakan padanan dan penggantian corak berasaskan ungkapan biasa dalam rentetan tertentu.
Ungkapan biasa atau regex ialah corak set dan ruang letak yang membolehkan kami memadankan dan memanipulasi rentetan atau subrentetan yang mengikut corak tertentu.
Adalah baik untuk diingat bahawa setiap enjin pangkalan data mungkin melaksanakan sedikit sintaks dan fungsi fungsi tersebut.
Walau bagaimanapun, kita boleh menyatakan sintaksnya seperti berikut:
REGEXP_REPLACE(rentetan_masukan, corak, penggantian [, bendera])
Parameter fungsi adalah seperti yang dinyatakan seperti berikut:
- input_string - Ini menentukan rentetan di mana kami ingin mencari dan menggantikannya.
- Corak - Ini menentukan corak ungkapan biasa yang kita mahu padankan dalam rentetan input.
- Penggantian - Ini menentukan rentetan yang menggantikan subrentetan yang dipadankan.
- Bendera – Satu set bendera pilihan yang boleh membantu mengubah suai kefungsian ungkapan biasa. Sebagai contoh, kami boleh mendayakan carian global, padanan tidak sensitif huruf besar-besaran, dsb. Ciri ini berbeza-beza bergantung pada enjin pangkalan data.
Contoh:
Untuk lebih memahami cara fungsi ini berfungsi, mari kita lihat beberapa contoh tentang cara menggunakannya.
Contoh 1: Penggunaan Asas
Katakan kita mempunyai jadual yang mengandungi maklumat pekerja seperti yang ditunjukkan dalam contoh output berikut:
Pertimbangkan kes di mana kita mahu menggantikan kejadian rentetan 'Charlie' kepada 'Matthew'. Kita boleh menggunakan pertanyaan seperti berikut:
PILIHREGEXP_REPLACE(first_name, 'Charlie', 'Matthew') AS new_name
DARI
pekerja;
Contoh yang diberikan menunjukkan carian asas dan ganti untuk mencari rentetan 'Charlie' daripada lajur 'first_name' dan gantikannya dengan 'Matthew'.
Pengeluaran:
Contoh 2: Penggantian Case Insensitive
Dalam sesetengah kes, anda mungkin mahu melakukan carian yang tidak peka huruf besar-besaran. Ini bermakna fungsi itu hanya akan melihat kandungan rentetan dan bukan selongsong sebenar huruf alfanumerik.
Dalam kes sedemikian, kami menggunakan 'i' sebagai bendera fungsi seperti berikut:
PILIH REGEXP_REPLACE(product_description, Samsung, Apple, 'i') AS diubah suaiDARI produk;
Dengan menetapkan bendera kepada 'i', fungsi ini sepadan dengan semua perkataan yang sepadan dengan 'Samsung', tanpa mengira sarungnya.
Kesimpulan
Dalam contoh ini, kami meneroka cara menggunakan dan berfungsi dengan fungsi REGEXP_REPLACE() untuk melakukan carian dan penggantian berasaskan corak ungkapan biasa.