MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

MariaDB FIELD() vs FIND_IN_SET():Apa Bedanya?

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).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Operator MariaDB MINUS Dijelaskan

  2. Menyediakan Mesin Rahasia Database MySQL/MariaDB Vault dengan Terraform

  3. 4 Fungsi untuk Mengembalikan Tahun dari Tanggal di MariaDB

  4. Cara Mengatur Replikasi MariaDB 10.3 Menggunakan Ansible dan Vagrant

  5. Bagaimana DATE_SUB() Bekerja di MariaDB