Dua fungsi serupa di MariaDB adalah FIELD()
dan FIND_IN_SET()
. Sekilas, ini tampak melakukan hal yang sama, tetapi ada perbedaan.
Artikel ini membahas perbedaan antara kedua fungsi tersebut.
Sintaks dan Definisi
Pertama, mari kita lihat sintaks dan definisi dari setiap fungsi:
Fungsi | Sintaks | Definisi |
---|---|---|
FIELD() | FIELD(pattern, str1[,str2,...]) | Mengembalikan posisi indeks string atau angka yang cocok dengan pola yang diberikan. |
FIND_IN_SET() | FIND_IN_SET(pattern, strlist) | Mengembalikan posisi indeks di mana pola yang diberikan muncul dalam daftar string. |
Kedua fungsi menerima pattern
sebagai argumen pertama mereka. Namun, apa yang terjadi selanjutnya yang menyoroti perbedaan mereka:
FIELD()
menerima satu atau lebih string, dipisahkan dengan koma.FIND_IN_SET()
menerima satu daftar string.
Contoh
Berikut adalah contoh yang menunjukkan perbedaan antara kedua fungsi ini:
SELECT
FIELD('bat', 'cat','dog','bat') AS "FIELD()",
FIND_IN_SET('bat', 'cat,dog,bat') AS "FIND_IN_SET()";
Hasil:
+---------+---------------+ | FIELD() | FIND_IN_SET() | +---------+---------------+ | 3 | 3 | +---------+---------------+
Setiap fungsi mengembalikan hasil yang sama, tetapi setiap fungsi menerima string dalam format yang berbeda.
Nilai yang diberikan ke FIELD()
datang sebagai tiga argumen terpisah, sedangkan nilai yang diberikan ke FIND_IN_SET()
datang sebagai daftar string tunggal (yang berisi nilai-nilai terpisah).