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.