Di MySQL, Anda dapat menggunakan FIELD()
fungsi untuk mengembalikan posisi string atau angka yang diberikan dalam daftar argumen. Fungsi mengembalikan indeks (posisi) argumen pertama dalam daftar argumen berikutnya.
Sintaksnya seperti ini:
FIELD(str,str1,str2,str3,...)
Dimana str
adalah item yang ingin Anda temukan, dan str1,str2,str3,...
adalah daftar yang Anda cari.
Ini contohnya:
SELECT FIELD('Homer', 'Marge', 'Homer', 'Bart') AS 'Where is Homer?';
Hasil:
+-----------------+ | Where is Homer? | +-----------------+ | 2 | +-----------------+
Dalam contoh ini, daftarnya adalah:'Marge', 'Homer', 'Bart'
dan kami sedang mencari string Homer
dalam daftar itu. Dan karena Homer
adalah item ke-2 dalam daftar argumen, hasilnya adalah 2
.
Pencocokan Tepat
Perhatikan bahwa itu harus sama persis, jika tidak maka akan mengembalikan 0
.
Misalnya, jika kita membuang r
dari Homer
, kami akhirnya mencari Home
sebagai gantinya:
SELECT FIELD('Home', 'Marge', 'Homer', 'Bart') AS 'Where is Home?';
Hasil:
+-----------------+ | Where is Home? | +-----------------+ | 0 | +-----------------+
Dalam hal ini, meskipun Homer
berisi Home
, itu bukan pencocokan persis dan hasilnya 0
.
Angka
FIELD()
fungsi juga bekerja dengan angka:
SELECT FIELD(1, 3, 2, 1) AS 'Where is 1?';
Hasil:
+-------------+ | Where is 1? | +-------------+ | 3 | +-------------+
Ketika semua argumen ke FIELD()
adalah angka, semua argumen dibandingkan sebagai angka. Jika semuanya adalah string, mereka dibandingkan sebagai string. Jika dicampur, mereka akan dibandingkan sebagai dua kali lipat.
FIELD()
fungsi adalah pelengkap dari ELT()
fungsi, yang memungkinkan Anda menemukan item daftar berdasarkan posisinya dalam daftar.
Lihat juga Cara Mengembalikan Posisi Item Daftar menggunakan FIND_IN_SET()
fungsi.