Alat HS

Potensi fungsi senar FIND_IN_SET dalam MySQL

🏷️ Tag Artikel: MySQL, FIND_IN_SET
👁️‍🗨️ 437 🕒 2024-12-30 09:53:22

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.


Semua Alat
Tautan Persahabatan

© CopyRight 2018-2025, Tool.hadsky.com

陕ICP备13005805号

Pindai

OR