Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengikat Tatasusunan ID ke Penyata IN MySQL Menggunakan PDO dengan betul?

Bagaimana untuk Mengikat Tatasusunan ID ke Penyata IN MySQL Menggunakan PDO dengan betul?

Barbara Streisand
Barbara Streisandasal
2024-12-10 08:41:10340semak imbas

How to Properly Bind an Array of IDs to a MySQL IN Statement Using PDO?

Nilai Pengikat PDO untuk Penyata MySQL IN

Soalan ini menangani pengikatan tatasusunan ID kepada pernyataan PDO untuk digunakan dalam pernyataan MySQL IN . Isu timbul apabila nilai yang dipisahkan koma dalam tatasusunan dianggap sebagai rentetan tunggal dan bukannya nilai individu.

Penyelesaian:

Penyelesaian yang dicadangkan ialah menggunakan fungsi find_in_set dalam klausa WHERE. Walau bagaimanapun, terdapat pilihan lain yang tersedia.

Pilihan 1: Find_in_set

select users.id
from users
join products
on products.user_id = users.id
where find_in_set(cast(products.id as char), :products)

Kaedah ini sesuai untuk set data yang agak kecil, kerana ia boleh mempunyai implikasi prestasi untuk pangkalan data yang lebih besar.

Pilihan 2: Ditakrifkan Pengguna Fungsi

Fungsi yang ditentukan pengguna boleh dibuat untuk memisahkan senarai nilai yang dipisahkan koma. Ini ialah penyelesaian yang lebih berskala untuk set data yang besar. Sumber untuk mencipta fungsi sedemikian boleh didapati dalam pautan yang disediakan:

http://www.slickdev.com/2008/09/15/mysql-query-real-values-from-delimiter-separated- string-ids/

Akhirnya, pilihan penyelesaian bergantung pada saiz dan kerumitan set data yang sedang diproses.

Atas ialah kandungan terperinci Bagaimana untuk Mengikat Tatasusunan ID ke Penyata IN MySQL Menggunakan PDO dengan betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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