Di MySQL, POSITION()
fungsi mengembalikan posisi kemunculan pertama substring dalam string.
Fungsi ini sebenarnya sinonim untuk LOCATE()
, tetapi dengan sintaks yang sedikit berbeda. LOCATE()
function juga memiliki fungsionalitas ekstra, yang memungkinkan Anda menentukan posisi awal dari pencarian Anda.
Sintaks
Sintaks dasarnya seperti ini:
POSITION(substr IN str)
Dimana substr
adalah substring dan str
adalah string.
Contoh 1 – Penggunaan Dasar
SELECT POSITION('Cat' IN 'The Cat') Result;
Hasil:
+--------+ | Result | +--------+ | 5 | +--------+
Contoh 2 – Sensitivitas Huruf Besar
POSITION()
fungsi multibyte aman, dan peka huruf besar-kecil hanya jika setidaknya satu argumen adalah string biner.
Jadi contoh berikut tidak peka huruf besar/kecil:
SELECT POSITION('Cat' IN 'The cat') Result;
Hasil:
+--------+ | Result | +--------+ | 5 | +--------+
Contoh 3 – Tidak Cocok
Fungsi mengembalikan 0
jika substring tidak ditemukan di dalam string:
SELECT POSITION('Dog' IN 'The cat') Result;
Hasil:
+--------+ | Result | +--------+ | 0 | +--------+
Contoh 4 – Substring Tertanam
Hati-hati saat memilih substring. Jika itu bagian dari kata lain, Anda bisa mendapatkan hasil positif palsu:
SELECT POSITION('Cat' IN 'Good Catch!') Result;
Hasil:
+--------+ | Result | +--------+ | 6 | +--------+
Jika Anda hanya mencari kucing , hewan, ini akan menjadi positif palsu.
Contoh 5 – Kejadian Pertama Saja
Ingat, fungsi ini hanya mengembalikan posisi pertama kemunculan substring. Kejadian selanjutnya diabaikan:
SELECT POSITION('Cat' IN 'My cat is bigger than your cat') Result;
Hasil:
+--------+ | Result | +--------+ | 4 | +--------+
Contoh 6 – Argumen NULL
Jika salah satu argumennya adalah NULL
, hasilnya adalah NULL
:
SELECT POSITION('Cat' IN NULL) 'Result 1', POSITION(NULL IN 'The Cat') 'Result 2';
Hasil:
+----------+----------+ | Result 1 | Result 2 | +----------+----------+ | NULL | NULL | +----------+----------+
Seperti yang disebutkan, Anda juga dapat menggunakan LOCATE()
fungsi, yang memungkinkan Anda menentukan posisi awal untuk pencarian Anda.