MySQL memiliki sejumlah fungsi string yang mengembalikan posisi substring dalam string. Lebih khusus lagi, mereka mengembalikan posisi kemunculan pertama dalam string (atau kemunculan pertama setelah titik awal tertentu).
Fungsi yang saya maksud adalah sebagai berikut:
INSTR()
LOCATE()
POSITION()
Di bawah ini adalah ikhtisar masing-masing.
INSTR()
INSTR()
fungsi mengembalikan kemunculan pertama substring dalam string.
Berikut sintaksnya:
INSTR(str,substr)
Dimana str
adalah string yang ingin Anda cari, dan substr
adalah substring yang Anda cari.
Contoh
SELECT INSTR('Cats and dogs like to run', 'dogs') AS Result;
Hasil:
+--------+ | Result | +--------+ | 10 | +--------+
Dalam hal ini, string dogs
dimulai dari posisi 10.
Jika substring tidak ditemukan, hasil dari 0
dikembalikan:
SELECT INSTR('Cats and dogs like to run', 'rabbit') AS Result;
Hasil:
+--------+ | Result | +--------+ | 0 | +--------+
LOCATE()
LOCATE()
fungsi bekerja dengan cara yang sama, kecuali untuk beberapa perbedaan; argumen berada dalam urutan yang berbeda, dan Anda dapat memberikan parameter ketiga opsional untuk menunjukkan di mana harus mulai mencari.
Oleh karena itu, Anda dapat menggunakannya dengan salah satu cara berikut:
LOCATE(substr,str) LOCATE(substr,str,pos)
Sintaks pertama seperti INTSR()
sintaks, kecuali str
dan substr
ditukar.
Sintaks kedua menambahkan opsional pos
argumen, yang memungkinkan Anda menentukan posisi untuk mulai mencari.
Contoh Sintaks Pertama
Berikut ini contoh menggunakan sintaks pertama:
SELECT LOCATE('dogs', 'Cats and dogs like to run') AS Result;
Hasil:
+--------+ | Result | +--------+ | 10 | +--------+
Contoh Sintaks Kedua
Berikut adalah contoh di mana kami menentukan posisi awal untuk mulai mencari:
SELECT LOCATE('cat', 'Cats, cats, and more cats!', 6) AS Result;
Hasil:
+--------+ | Result | +--------+ | 7 | +--------+
Kita dapat melihat bahwa string cat
dapat ditemukan di posisi 1, tetapi kami menentukan 6
sebagai posisi awal. Oleh karena itu, posisi kemunculan string berikutnya adalah yang dikembalikan.
Seperti halnya INSTR()
fungsi, jika substring tidak ditemukan, 0
dikembalikan.
POSISI()
POSITION()
fungsi adalah sinonim untuk LOCATE()
, tetapi dengan sintaks yang sedikit berbeda.
Berikut sintaksnya:
POSITION(substr IN str)
Ini adalah sinonim untuk yang berikut:
LOCATE(substr,str)
Jadi, kita bisa menulis ulang salah satu contoh sebelumnya sebagai berikut:
SELECT POSITION('dogs' IN 'Cats and dogs like to run') AS Result;
Hasil:
+--------+ | Result | +--------+ | 10 | +--------+