Heim > Datenbank > MySQL-Tutorial > Wie formatiere ich MySQL-Variablen für die Verwendung in einer „NOT IN'-Klausel richtig?

Wie formatiere ich MySQL-Variablen für die Verwendung in einer „NOT IN'-Klausel richtig?

Mary-Kate Olsen
Freigeben: 2024-12-31 20:32:10
Original
918 Leute haben es durchsucht

How to Correctly Format MySQL Variables for Use in a

MySQL-Variablenformat für eine „NOT IN“-Liste von Werten

Beim Versuch, bestimmte Werte in einer MySQL-Abfrage mithilfe einer „NOT IN“-Liste auszuschließen, wird eine zugewiesen Variable auf die ausgeschlossenen Werte kann eine praktische Lösung sein. Es ist jedoch wichtig, das richtige Variablenformat sicherzustellen.

Wie in Ihrer Abfrage beschrieben, haben Sie versucht, der Variablen „@idcamposexcluidos“ verschiedene Formate zuzuweisen:

  • SET @idcamposexcluidos='817,803,495 ';
  • SET @idcamposexcluidos='(817,803,495)';
  • SET @idcamposexcluidos=817,803,495;

Jedoch funktioniert keines dieser Formate wie erwartet. Der Grund dafür ist, dass die „IN“-Klausel separate Werte und keine einzelne Zeichenfolge erfordert. Daher wird die Abfrage:

WHERE id_campo not in (@idcamposexcluidos)
Nach dem Login kopieren

effektiv zu:

WHERE id_campo not in ('817,803,495')
Nach dem Login kopieren

was falsch ist. Die Werte sollten als separate Zeichenfolgenliterale bereitgestellt werden:

WHERE id_campo not in ('817','803','495')
Nach dem Login kopieren

Um dieses Problem zu beheben, gibt es zwei Optionen:

  1. Dynamic SQL: Erstellen Sie die Abfrage dynamisch unter Verwendung einer Verkettung der ausgeschlossenen Werte.
  2. MySQL FIND_IN_SET() Funktion:Verwenden Sie die Funktion FIND_IN_SET(), um zu prüfen, ob der Wert in der durch Kommas getrennten Liste der ausgeschlossenen Werte vorhanden ist, wie unten gezeigt:
SET @idcamposexcluidos='817,803,495';
...
WHERE FIND_IN_SET(id_campo, @idcamposexcluidos) = 0
Nach dem Login kopieren

Beachten Sie, dass die Verwendung von FIND_IN_SET() Funktion kann die Indexnutzung beeinträchtigen.

Das obige ist der detaillierte Inhalt vonWie formatiere ich MySQL-Variablen für die Verwendung in einer „NOT IN'-Klausel richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage