Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Nilai pengikatan PDO untuk pernyataan MySQL IN

Ini adalah hal yang sama seperti yang ditanyakan dalam pertanyaan ini:Dapatkah saya mengikat array ke kondisi IN()?

Jawabannya adalah, untuk daftar ukuran variabel di in klausa, Anda harus membuat kueri sendiri.

Namun, Anda dapat menggunakan daftar yang dipisahkan koma dengan tanda kutip menggunakan find_in_set , meskipun untuk kumpulan data yang besar, ini akan memiliki dampak kinerja yang cukup besar, karena setiap nilai dalam tabel harus ditransmisikan ke jenis karakter.

Misalnya:

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

Atau, sebagai opsi ketiga, Anda dapat membuat fungsi yang ditentukan pengguna yang membagi daftar yang dipisahkan koma untuk Anda (lih. http://www.slickdev.com/2008/09/15/mysql-query-real-values-from-delimiter-separated-string-ids / ). Ini mungkin opsi terbaik dari ketiganya, terutama jika Anda memiliki banyak kueri yang mengandalkan in(...) klausa.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL InnoDB tidak melepaskan ruang disk setelah menghapus baris data dari tabel

  2. Cara Menginstal MySQL 8 di Windows

  3. Bagaimana saya memutuskan kapan harus menggunakan gabungan kanan/gabungan kiri atau gabungan dalam Atau bagaimana menentukan tabel mana yang berada di sisi mana?

  4. Temukan nilai paling sering di kolom SQL

  5. Bagaimana mengelola pengguna dan otentikasi di MySQL