Anda dapat menggunakan SUBSTRING_INDEX()
MySQL berfungsi untuk mengembalikan semuanya sebelum atau sesudah karakter (atau karakter) tertentu dalam sebuah string.
Fungsi ini memungkinkan Anda menentukan pembatas yang akan digunakan, dan Anda dapat menentukan yang mana (jika ada lebih dari satu dalam string).
Sintaks
Berikut sintaksnya:
SUBSTRING_INDEX(str,delim,count)
Dimana str
adalah string, delim
adalah pembatas (dari mana Anda ingin substring di kiri atau kanan), dan count
menentukan pembatas mana (jika ada beberapa kemunculan pembatas dalam string).
Perhatikan bahwa pembatas dapat berupa satu karakter atau beberapa karakter.
Contoh 1 – Pilih Semuanya di Kiri
Untuk memilih semuanya sebelum karakter tertentu, gunakan nilai positif:
SELECT SUBSTRING_INDEX('Cats,Dogs,Rabbits', ',', 2);
Hasil:
Cats,Dogs
Dalam contoh ini, kami memilih semuanya sebelum koma kedua. Ini dilakukan dengan menggunakan koma (,
) sebagai pembatas, dan 2
sebagai hitungan.
Contoh 2 – Pilih Semuanya ke Kanan
Untuk memilih semuanya setelah karakter tertentu, Anda perlu menggunakan nilai negatif:
SELECT SUBSTRING_INDEX('Cats,Dogs,Rabbits', ',', -2);
Hasil:
Dogs,Rabbits
Perhatikan bahwa nilai negatif berarti akan dihitung dari kanan, lalu pilih substring di sebelah kanan pembatas.
Bagaimana jika Pembatas tidak Cocok?
Jika pembatas tidak ditemukan dalam string, string akan dikembalikan sepenuhnya.
Contoh:
SELECT SUBSTRING_INDEX('Cats,Dogs,Rabbits', '-', 1);
Hasil:
Cats,Dogs,Rabbits
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('Cats,Dogs,Rabbits', ',', 10);
Hasil:
Cats,Dogs,Rabbits
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('Cats and Dogs and Rabbits', 'AND', 2);
Hasil:
Cats and Dogs and Rabbits
Kami mendapatkan seluruh string secara penuh.
Kasus yang Benar
Sekarang ini contoh yang sama, tetapi kasusnya cocok:
SELECT SUBSTRING_INDEX('Cats and Dogs and Rabbits', 'and', 2);
Hasil:
Cats and Dogs