Di MariaDB, Anda dapat menggunakan SUBSTRING_INDEX()
berfungsi untuk mengembalikan semuanya sebelum atau sesudah karakter (atau karakter) tertentu dalam sebuah string.
Fungsi ini menerima tiga argumen; string, pembatas, dan jumlah kemunculan pembatas yang digunakan untuk menentukan substring yang akan dikembalikan.
Contoh
Kita dapat melihat bagaimana fungsi tersebut bekerja pada contoh berikut.
Pilih Semuanya Sebelumnya
Untuk memilih semuanya sebelum karakter tertentu, buat argumen ketiga menjadi nilai positif:
SELECT SUBSTRING_INDEX('Red,Green,Blue', ',', 2);
Hasil:
Red,Green
Dalam contoh ini, kami memilih semuanya sebelum koma kedua. Ini dilakukan dengan menggunakan koma (,
) sebagai pembatas, dan 2
sebagai hitungan.
Saya menggunakan koma dalam contoh itu, tetapi bisa berupa karakter atau string apa pun:
SELECT SUBSTRING_INDEX('Red or Green or Blue', ' or ', 2);
Hasil:
Red or Green
Pilih Semuanya Setelah
Gunakan nilai negatif untuk memilih semuanya setelah karakter tertentu:
SELECT SUBSTRING_INDEX('Red,Green,Blue', ',', -2);
Hasil:
Green,Blue
Perhatikan bahwa nilai negatif berarti akan dihitung dari kanan, lalu pilih substring di sebelah kanan pembatas.
Saat Pembatas Tidak Ditemukan
Jika pembatas tidak ditemukan dalam string, string dikembalikan secara penuh.
Contoh:
SELECT SUBSTRING_INDEX('Red,Green,Blue', '-', 1);
Hasil:
Red,Green,Blue
Dalam hal ini, seluruh string dikembalikan secara penuh karena kami menggunakan tanda hubung (-
) sebagai pembatas tetapi tidak ada tanda hubung dalam string.
Kami akan mendapatkan hasil yang sama jika string berhasil mengandung pembatas, tetapi count
kami melebihi jumlah pembatas dalam string.
Contoh:
SELECT SUBSTRING_INDEX('Red,Green,Blue', ',', 10);
Hasil:
Red,Green,Blue
Sensitivitas Huruf Besar
SUBSTRING_INDEX()
fungsi melakukan pencarian peka huruf besar/kecil untuk pembatas. Artinya, pembatas harus menjadi kasus yang benar sebelum cocok.
Kasus Salah
Berikut ini contoh kasus yang tidak cocok:
SELECT SUBSTRING_INDEX('Red and green and blue', 'AND', 2);
Hasil:
Red and green and blue
Kami mendapatkan seluruh string secara penuh.
Kasus yang Benar
Sekarang ini contoh yang sama, tetapi kasusnya cocok:
SELECT SUBSTRING_INDEX('Red and green and blue', 'and', 2);
Hasil:
Red and green