Di MariaDB, POSITION()
adalah fungsi string bawaan yang mengembalikan posisi kemunculan pertama substring dalam string lain. Ini adalah bagian dari ODBC 3.0.
POSITION(substr IN str)
adalah sinonim untuk LOCATE(substr,str)
.
POSITION()
juga mirip dengan INSTR()
fungsi, kecuali POSITION()
menggunakan IN
sintaks, dan urutan argumen dibalik antara dua fungsi ini.
Sintaks
Sintaksnya seperti ini:
POSITION(substr IN str)
Dimana str
adalah string, dan substr
adalah substring untuk mengembalikan posisinya.
Contoh
Berikut ini contoh dasarnya:
SELECT POSITION('cute' IN 'My cute dog');
Hasil:
+-----------------------------------+| POSISI('imut' DI 'Anjing imutku') |+-----------------------------------+ | 4 |+------------------------------------+
Sensitivitas Huruf Besar
POSITION()
melakukan pencarian peka huruf besar/kecil:
SELECT POSITION('CUTE' IN 'My cute dog');
Hasil:
+-----------------------------------+| POSISI('LUCU' DI 'Anjing imutku') |+-----------------------------------+ | 4 |+------------------------------------+
Beberapa Kejadian
Jika substring muncul lebih dari sekali, hanya posisi substring pertama (dari posisi awal) yang dikembalikan:
SELECT POSITION('cute' IN 'My cute dog is SOOOO cute!');
Hasil:
+------------------------------------------------- ----+| POSISI('imut' DI 'Anjing imutku sangat imut!') |+-------------------------------- ------------------+| 4 |+----------------------------------------------- ---+
Kecocokan Sebagian
Jika substring adalah bagian dari kata yang lebih besar, itu masih cocok:
SELECT POSITION('dog' IN 'My doggy is SOOO cute!');
Hasil:
+------------------------------------------------+ | POSISI('anjing' DI 'Doggy saya sangat lucu!') |+--------------------------------- ------------+| 4 |+---------------------------------------------+Tetapi jika string hanya bagian dari substring, itu tidak cocok:
SELECT POSITION('doggy' IN 'My dog is SOOO cute!');
Hasil:
+------------------------------------------------+ | POSISI('anjing' DI 'Anjing saya sangat lucu!') |+--------------------------------- ------------+| 0 |+--------------------------------------------+Ruang
Karakter spasi masih berupa string, jadi kita dapat menyertakan spasi di substring, meskipun itu satu-satunya karakter:
SELECT POSITION(' ' IN 'My dog');
Hasil:
+---------------------------+| POSISI(' ' DI 'Anjing saya') |+---------------------------+| 3 |+-----------------------+String Kosong
Inilah yang terjadi ketika substring adalah string kosong:
SELECT POSITION('' IN 'My dog');
Hasil:
+--------------------------+| POSISI('' DI 'Anjing saya') |+--------------------------+| 1 |+--------------------------+Tidak Cocok
Jika substring tidak ditemukan dalam string,
POSITION()
mengembalikan0
:SELECT position('cat' IN 'My dog');
Hasil:
+-----------------------------+| posisi('kucing' DI 'Anjing saya') |+----------------------------+| 0 |+-------------------------+Argumen Null
Memberikan
null
untuk salah satu argumen menghasilkannull
:SELECT POSITION(null IN 'My dog'), POSITION('dog' IN null);
Hasil:
+------------------------+------------------ --------+| POSISI(null IN 'Anjing saya') | POSISI('anjing' DI null) |+----------------------------+----------- --------------+| NULL | NULL |+----------------------------+------------------ -------+Menyediakan Jumlah Argumen yang Salah
Memanggil
POSITION()
dengan jumlah argumen yang salah, atau tanpa memberikan argumen apa pun menghasilkan kesalahan:SELECT POSITION('dog');
Hasil:
ERROR 1064 (42000):Anda memiliki kesalahan dalam sintaks SQL Anda; periksa manual yang sesuai dengan versi server MariaDB Anda untuk sintaks yang tepat untuk digunakan di dekat ')' di baris 1