Di MariaDB, SUBSTRING_INDEX()
adalah fungsi string bawaan. Ini mengembalikan substring dari string sebelum sejumlah kemunculan tertentu dari pembatas yang ditentukan.
SUBSTRING_INDEX()
membutuhkan tiga argumen; string, pembatas, dan hitungan (yaitu jumlah kemunculan pembatas tersebut).
Sintaks
Sintaksnya seperti ini:
SUBSTRING_INDEX(str,delim,count)
Dimana str
adalah string, delim
adalah pembatas, dan count
adalah jumlah kemunculan pembatas yang digunakan untuk menentukan substring yang akan dikembalikan.
Jika count
positif, semua yang ada di sebelah kiri pembatas akhir (dihitung dari kiri) dikembalikan. Jika count
negatif, semua yang ada di sebelah kanan pembatas akhir (dihitung dari kanan) dikembalikan.
Contoh
Berikut ini contoh dasarnya:
SELECT SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', 3);
Hasil:
+-------------------------------------------------------+ | SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', 3) | +-------------------------------------------------------+ | /users/homer | +-------------------------------------------------------+
Jumlah Negatif
Menentukan nilai negatif untuk hitungan menyebabkannya dihitung mundur dari akhir string:
SELECT SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', -3);
Hasil:
+--------------------------------------------------------+ | SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', -3) | +--------------------------------------------------------+ | homer/docs/cat_vids | +--------------------------------------------------------+
Pembatas Tidak Ditemukan
Jika pembatas tidak ada dalam string, seluruh string dikembalikan:
SELECT SUBSTRING_INDEX('/users/homer/docs/cat_vids', '.', 3);
Hasil:
+-------------------------------------------------------+ | SUBSTRING_INDEX('/users/homer/docs/cat_vids', '.', 3) | +-------------------------------------------------------+ | /users/homer/docs/cat_vids | +-------------------------------------------------------+
Argumen Null
Jika salah satu (atau semua) argumen adalah null
, SUBSTRING_INDEX()
fungsi mengembalikan null
:
SELECT
SUBSTRING_INDEX(null, '/', 3) AS "1",
SUBSTRING_INDEX('/users/homer/docs/cat_vids', null, 3) AS "2",
SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', null) AS "3",
SUBSTRING_INDEX(null, null, null) AS "4";
Hasil:
+------+------+------+------+ | 1 | 2 | 3 | 4 | +------+------+------+------+ | NULL | NULL | NULL | NULL | +------+------+------+------+
Argumen Tidak Ada
Memanggil SUBSTRING_INDEX()
tanpa meneruskan argumen apa pun menghasilkan kesalahan:
SELECT SUBSTRING_INDEX();
Hasil:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SUBSTRING_INDEX'