MySQL SELECT mit CONCAT-Bedingung verwenden
Wenn Sie mit einer Tabelle arbeiten, die Vor- und Nachnamenfelder enthält, besteht eine häufige Aufgabe darin, diese zu verketten eine einzelne Zeichenfolge für Vergleichs- oder Filterzwecke. Es kann jedoch rätselhaft sein, bei der Verwendung eines Alias für die verkettete Zeichenfolge auf den Fehler „Unbekannte Spalte“ zu stoßen.
Um dies zu umgehen, ist es wichtig zu verstehen, dass Aliase nur auf die Ausgabe einer Abfrage anwendbar sind, nicht innerhalb der selbst abfragen. Um Zeichenfolgen zu verketten und zu vergleichen, haben Sie zwei Möglichkeiten:
Wiederholen der Verkettung:
SELECT neededfield, CONCAT(firstname, ' ', lastname) as firstlast FROM users WHERE CONCAT(firstname, ' ', lastname) = "Bob Michael Jones"
Durch Wiederholen des Verkettungsausdrucks in der WHERE-Klausel stellen Sie sicher, dass Sie Sie vergleichen die tatsächlichen verketteten Werte.
Verwenden einer Unterabfrage:
SELECT * FROM ( SELECT neededfield, CONCAT(firstname, ' ', lastname) as firstLast FROM users ) base WHERE firstLast = "Bob Michael Jones"
Indem Sie die Abfrage in eine Unterabfrage einschließen, erstellen Sie eine temporäre Tabelle mit einem Alias ( „base“ in diesem Beispiel), das die verkettete Zeichenfolge als Spalte enthält. Anschließend können Sie diese temporäre Tabelle nach dem gewünschten Vergleich filtern.
Das obige ist der detaillierte Inhalt vonSo verketten und vergleichen Sie Zeichenfolgen mithilfe von MySQL SELECT mit CONCAT: Vermeiden Sie den Fehler „Unbekannte Spalte'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!