Ich versuche, ein Array von Parametern im Parameterfeld von pg-promise zu übergeben, wie in pg-promise docs .
%Vor%Aber es funktioniert nicht, ich habe einen Fehler zurückgegeben "nach der Argumentliste" Fehler. Oder ein "Operator existiert nicht: Integer = Integer []]" Fehler, wenn ich die Parameter ersetzen durch:
%Vor%Natürlich, wenn ich es so überlasse, funktioniert es:
%Vor%Ist es die richtige Art, ein Array von Werten zu übergeben, wenn andere Parameter beteiligt sind?
Ich habe auch versucht, die Klammer um die $ 2 zu entfernen, ohne Erfolg.
Ich bin der Autor von pg-promise .
Es gibt einige Verwirrung in Ihrem Beispiel ...
Sie verwenden nur zwei Variablen in der Abfrage, geben aber vier Werte ein:
1
[[1730442],[1695256]]
[487413]
[454336]
Und deine Syntax dort ist kein gültiges JavaScript, da du ]
am Ende ohne das passende öffnende verwendest, also ist es schwer zu verstehen, was genau du gerade anpassest.
Und warum sollten dann alle Werte wieder in Arrays eingeschlossen werden? Ich glaube, es ist nur eine Liste von ganzen Zahlen, die Sie in der IN()
-Anweisung haben wollen.
Wenn Sie Werte innerhalb von WHERE IN()
verwenden möchten, handelt es sich nicht wirklich um ein Array dieser Werte, die Sie übergeben möchten. Es handelt sich um eine durch Kommas getrennte Liste von Werten.
Wenn Sie Ihr Beispiel wie folgt ändern:
%Vor%Sie erhalten die korrekte Liste der injizierten Werte.
Siehe auch:
Eine andere Möglichkeit ist:
%Vor%Von postgresql Handbuch hier: Ссылка
Die rechte Seite ist ein geklammerter Ausdruck, der ein Array-Wert. Der linke Ausdruck wird ausgewertet und verglichen mit Jedes Element des Arrays verwendet den gegebenen Operator, der a ergeben muss Boolesches Ergebnis Das Ergebnis von ANY ist "wahr", wenn ein echtes Ergebnis vorliegt erhalten. Das Ergebnis ist "falsch", wenn kein richtiges Ergebnis gefunden wird (einschließlich der Fall, in dem das Array keine Elemente enthält.)
Wenn der Array-Ausdruck ein Null-Array ergibt, ist das Ergebnis von ANY Null. Wenn der linke Ausdruck null ergibt, ist das Ergebnis von ANY normalerweise null (obwohl ein nicht strikter Vergleichsoperator möglicherweise ein anderes Ergebnis liefern). Auch wenn das rechte Array enthält alle Nullelemente und es wird kein echtes Vergleichsergebnis erhalten, Das Ergebnis von ANY wird null sein, nicht falsch (wieder unter der Annahme eines strikten Vergleichsoperator). Dies entspricht den normalen SQL-Regeln für boolesche Kombinationen von Nullwerten.
SOME ist ein Synonym für ANY.
Tags und Links javascript pg-promise