MariaDB memiliki INSTR()
fungsi dan juga LOCATE()
fungsi. Kedua fungsi tampaknya melakukan hal yang persis sama – mengembalikan posisi substring dalam string.
Namun, ada perbedaan.
Perbedaan
Kita dapat melihat perbedaan antara kedua fungsi ini dengan melihat sintaksnya, serta beberapa contoh.
Sintaks
Sintaks untuk INSTR()
:
INSTR(str,substr)
Dua sintaks yang diterima untuk LOCATE()
:
LOCATE(substr,str)
LOCATE(substr,str,pos)
Dimana str
adalah string, substr
adalah substring untuk ditemukan, dan pos
adalah posisi untuk memulai pencarian.
Perbedaan kedua fungsi tersebut dapat diringkas sebagai berikut:
LOCATE()
function menerima dua argumen yang sama denganINSTR()
menerima, tetapi dalam urutan terbalik.
LOCATE()
function menerima argumen ketiga opsional untuk menentukan posisi awal pencarian.INSTR()
function tidak menerima argumen seperti itu.
Jadi LOCATE()
menyediakan fungsionalitas tambahan yang INSTR()
tidak menyediakan.
Contoh 1 – Perbedaan Pertama
Berikut adalah contoh yang menunjukkan urutan terbalik di mana kedua fungsi menerima argumennya:
SELECT
INSTR('Disconnect', 'con'),
LOCATE('con', 'Disconnect');
Hasil:
+----------------------------+-----------------------------+ | INSTR('Disconnect', 'con') | LOCATE('con', 'Disconnect') | +----------------------------+-----------------------------+ | 4 | 4 | +----------------------------+-----------------------------+
Contoh 2 – Perbedaan Kedua
Berikut adalah contoh yang menunjukkan fungsionalitas tambahan yang LOCATE()
menyediakan lebih dari INSTR()
:
SELECT
INSTR('My cat is a good cat', 'cat') AS "INSTR()",
LOCATE('cat', 'My cat is a good cat') AS "LOCATE()",
LOCATE('cat', 'My cat is a good cat', 10) AS "LOCATE() with 3rd Argument";
Hasil:
+---------+----------+----------------------------+ | INSTR() | LOCATE() | LOCATE() with 3rd Argument | +---------+----------+----------------------------+ | 4 | 4 | 18 | +---------+----------+----------------------------+
Contoh ini menyoroti fakta bahwa LOCATE()
function memberi kita argumen ketiga opsional. Argumen ini memungkinkan kita untuk menentukan posisi awal untuk pencarian, yang berarti kita tidak terbatas hanya pada kemunculan pertama di seluruh string.