sql >> Databasteknik >  >> RDS >> Mysql

MySQL fel utdata med IN-sats och parameter

Parametrar fungerar inte så; de har ingen aning om att det du försöker tillhandahålla är en kommaseparerad lista med värden. Om du ställer in ParamByName('WhatEver').AsString eller Value , tror den att du menar en sträng med citattecken som innehåller allt som hör hemma i den parametern. Så den gör precis vad den ser ut att - den skickar IN ('1, 2, 3') , istället för den avsedda IN (1, 2, 3) .

Du måste antingen gå tillbaka till att analysera det själv och använda en temporär tabell, eller bygga WHERE sats dynamiskt och sammanfoga den innan frågan körs. (Du kan faktiskt bygga frågan dynamiskt och skapa en ny parameter för vart och ett av objekten i IN sats, och sedan gå igenom och tilldela värden till var och en av dessa dynamiskt skapade parametrar, men det blir väldigt fult väldigt snabbt.)



  1. Spara Python Pickled-objekt i MySQL db

  2. Att hålla en applikationsdatabas agnostisk (ADO.NET vs inkapslande DB-logik)

  3. Anslut till MySQL med JDBC över nätverk

  4. Hibernate, C3P0, Mysql -- Broken Pipe