FIND_IN_SET adalah fungsi tali di MySQL untuk mencari lokasi tali dalam senarai tali yang dipisahkan koma. Angka ini mengembalikan bilangan bulat yang menunjukkan lokasi tali yang ditemukan (dihitung dari satu), jika string tidak ada dalam daftar, kembali nol. Fungsi ini sering digunakan untuk menangani bidang yang tersimpan sebagai tali pemisah koma, meskipun desain ini biasanya tidak dianjurkan (lebih baik dilakukan dengan menggunakan database relasional, seperti menciptakan tabel multipasangan).
Tata bahasa
FIND_IN_SET(str, strlist)
String untuk dicari.
Strlist: berisi beberapa tali yang dipisahkan oleh koma.
contoh
Misalkan ada meja bernama jay, yang berisi kolom hobbies, yang menyimpan hobi pengguna, yang kemudian memisahkan para hobi dengan payudara.
SELECT * FROM users WHERE FIND_IN_SET('eat', hobbies) > 0;
Memberi perhatian
Kinerja: dengan menggunakan FIND_IN_SET pada kumpulan data besar dapat menyebabkan masalah kinerja, karena diperlukan pemindaian baris demi baris dan diuanalisis string yang terpisah koma.
Indeks: FIND_IN_SET tidak dapat digunakan pada indeks, yang berarti query mungkin tidak dapat menggunakan indeks untuk mempercepat pencarian data.
Standar data: cara yang lebih baik adalah dengan mengatur lahan multinilai seperti ini, seperti membuat meja user_hobbies yang baru, yang terdiri dari bidang user_id dan hobby yang membuat setiap pengguna mendapat satu baris hobi. Ini dapat menggunakan comlink standar SQL dan dapat menggunakan indeks untuk meningkatkan kinerja kueri.
Secara keseluruhan, meskipun FIND_IN_SET berguna dalam beberapa kasus, sebaiknya jangan gunakan string terpisah koma untuk menyimpan beberapa nilai ketika merancang database, tetapi gunakan metode yang lebih teratur.
© CopyRight 2018-2025, Tool.hadsky.com