Rumah > pangkalan data > tutorial mysql > Bolehkah FIND_IN_SET MySQL atau Fungsi Setara Menggunakan Indeks?

Bolehkah FIND_IN_SET MySQL atau Fungsi Setara Menggunakan Indeks?

Patricia Arquette
Lepaskan: 2024-11-05 21:22:02
asal
289 orang telah melayarinya

Can MySQL's FIND_IN_SET or an Equivalent Function Utilize Indices?

Bolehkah MySQL FIND_IN_SET atau Setara Menggunakan Indeks?

Pertanyaan SELECT * FROM Foo WHERE FIND_IN_SET(id, '2,3') tidak mengambil kesempatan daripada indeks kunci utama. Ini terbukti apabila membandingkan output EXPLAINnya dengan output untuk SELECT * FROM Foo WHERE id IN (2,3) yang menggunakan indeks.

Objektif: Membina prosedur tersimpan yang berkelakuan seperti pertanyaan kedua, menggunakan indeks tanpa pengetahuan sebelumnya tentang rentetan dipisahkan koma yang mengandungi ID.

Penyelesaian:

Buat pernyataan yang disediakan yang menerima rentetan sebagai parameter:

CREATE PROCEDURE my_sp(@id_string NCHAR(1000))
Salin selepas log masuk

Pernyataan yang disediakan kemudiannya boleh dilaksanakan dengan rentetan dipisahkan koma sebagai hujah:

EXEC my_sp '2,3'
Salin selepas log masuk

Pendekatan ini mencapai syarat yang diingini berikut:

  • jenis ialah julat (bukan SEMUA)
  • kunci bukan NULL

Syarat ini menunjukkan bahawa indeks sedang digunakan.

Pertimbangan Keselamatan:

Penyata yang disediakan mengurangkan risiko serangan suntikan SQL. Walau bagaimanapun, adalah penting untuk memastikan data yang dibekalkan pengguna dibersihkan untuk mengelakkan serangan suntikan SQL peringkat ke-2.

Atas ialah kandungan terperinci Bolehkah FIND_IN_SET MySQL atau Fungsi Setara Menggunakan Indeks?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan