MySQL-Variablenformat für eine "NICHT IN" -Liste von Werten
Verrückt zu versuchen, eine variable in einer Abfrage der Art:
SET @idcamposexcluidos='817,803,495';
kann ich dann also verwenden Sie es auf einem
WHERE id_campo not in (@idcamposexcluidos)
Ich habe versucht die variable definieren, die in verschiedenen Formaten mit kein Glück und don ' T scheinen zu finden, ein konkretes Beispiel für die oben:
SET @idcamposexcluidos='(817,803,495)';
...
WHERE id_campo not in @idcamposexcluidos
SET @idcamposexcluidos=817,803,495;
ohne Erfolg. Es entweder einen Fehler zurück oder ignoriert, die Werte.
InformationsquelleAutor der Frage luison | 2012-08-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht verwenden, die
IN
Klausel so. Es kompiliert, um eine single string in IhreIN
- Klausel. Aber einIN
Klausel muss separate Werte.kompiliert
aber es sollte
Um diese zu überwinden, entweder verwenden Sie dynamische SQL-oder MySQL verwenden konnte,FIND_IN_SET:
aber mit einer Funktion wie
FIND_IN_SET()
können Sie nicht machen Verwendung von Indizes.InformationsquelleAutor der Antwort juergen d
wenn Sie mysql > 5.1, die Sie verwenden können:
im anderen Fall können Sie einen trick:
InformationsquelleAutor der Antwort randiel
Mithilfe
CONCAT()
eine pipe-Trennzeichen (anstatt Kommas), und ein wenig "umgekehrte Logik", können Sie eine variable in IhremNOT IN
Liste, sondern - durch die VerwendungNOT LIKE
!Beispiel:
Diese Arbeit sollte mit beiden string-und numerischen Spalten gleichermaßen.
InformationsquelleAutor der Antwort newfurniturey