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

Output MySQL salah dengan klausa dan parameter IN

Parameter tidak bekerja seperti itu; mereka tidak tahu bahwa apa yang Anda coba berikan adalah daftar nilai yang dipisahkan koma. Jika Anda menyetel ParamByName('WhatEver').AsString atau Value , yang Anda maksud adalah string yang dikutip yang berisi semua yang termasuk dalam parameter itu. Jadi ia melakukan persis seperti yang terlihat - ia meneruskan IN ('1, 2, 3') , alih-alih IN (1, 2, 3) yang dimaksudkan .

Anda harus kembali menguraikannya sendiri dan menggunakan tabel temp, atau membuat WHERE klausa secara dinamis dan menggabungkannya sebelum mengeksekusi kueri. (Sebenarnya, Anda dapat membuat kueri secara dinamis, membuat parameter baru untuk setiap item di IN klausa, lalu mengulang dan menetapkan nilai ke masing-masing parameter yang dibuat secara dinamis, tetapi itu menjadi sangat jelek dengan sangat cepat.)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Alat Google Chart dengan PHP &MySQl

  2. c3p0 maxIdleTime sama dengan wait_timeout dari mysql?

  3. EasyPHP 16.1 autostart http &mysql

  4. Menjalankan banyak kueri di MySQL tanpa menggunakan sub-kueri

  5. Bagaimana Fungsi POSITION() Bekerja di MySQL