CONCAT-Bedingungen in MySQL-SELECT-Abfragen verstehen
Beim Umgang mit Feldern, die Namen oder andere verkettete Informationen darstellen, bietet die CONCAT-Funktion von MySQL ein vielseitiges Werkzeug für Werte kombinieren und Vergleiche durchführen. Die Verwendung von CONCAT in SELECT-Abfragen kann jedoch zu dem Fehler „Unbekannte Spalte“ für den dem verketteten Ausdruck zugewiesenen Alias führen.
Um diesen Fehler zu beheben, ist es wichtig zu verstehen, dass Aliase in SELECT-Abfragen nur auf die anwendbar sind Ausgabespalten und werden in der Abfrage selbst nicht erkannt. Um einen CONCAT-Ausdruck in einer WHERE-Bedingung zu verwenden, haben Sie daher zwei Möglichkeiten:
Wiederholen Sie den CONCAT-Ausdruck:
Statt der Verwendung von Alias, wiederholen Sie den CONCAT-Ausdruck innerhalb der WHERE-Klausel:
SELECT neededfield, CONCAT(firstname, ' ', lastname) as firstlast FROM users WHERE CONCAT(firstname, ' ', lastname) = "Bob Michael Jones"
Umschließen Sie die Abfrage:
Alternativ können Sie die ursprüngliche Abfrage umschließen in eine Unterabfrage und weisen Sie dem CONCAT-Ausdruck in der Unterabfrage einen Alias zu:
SELECT * FROM ( SELECT neededfield, CONCAT(firstname, ' ', lastname) as firstlast FROM users) base WHERE firstLast = "Bob Michael Jones"
In beiden Fällen vergleicht die Abfrage erfolgreich den verketteten Wert der Felder „Vorname“ und „Nachname“ mit dem bereitgestellten Zeichenfolge „Bob Michael Jones“ und ruft die gewünschten Ergebnisse ab.
Das obige ist der detaillierte Inhalt vonWarum gibt MySQL bei der Verwendung von CONCAT in SELECT-Abfragen den Fehler „Unbekannte Spalte' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!