MySQL wählt mit CONCAT-Bedingung
Ich versuche zu kompilieren, das in meinem Kopf.. ich habe eine Tabelle mit Felder firstname und lastname
und ich habe einen string wie "Bob Jones" oder "Bob Michael Jones" und einige andere.
die Sache ist die, ich habe zum Beispiel
Bob in firstname und
Michael Jones im lastname
so, ich bin versucht zu
SELECT neededfield, CONCAT(firstname, ' ', lastname) as firstlast
FROM users
WHERE firstlast = "Bob Michael Jones"
aber es sagt unbekannte Spalte "firstlast".. kann mir jemand helfen, bitte ?
InformationsquelleAutor der Frage Alex K | 2011-04-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Aliase, die Sie geben, sind für die Ausgabe der Abfrage an - Sie sind nicht in der Abfrage selbst.
Können Sie entweder wiederholen Sie den Ausdruck:
oder wickeln Sie die Abfrage
InformationsquelleAutor der Antwort mdma
Versuchen Sie dies:
InformationsquelleAutor der Antwort Chandu
InformationsquelleAutor der Antwort Jeff Swensen
Verwenden CONCAT_WS().
Das erste argument ist das Trennzeichen für die restlichen Argumente.
InformationsquelleAutor der Antwort Viraj Dhamal
Versuchen:
Ihren alias firstlast ist nicht verfügbar in der where-Klausel der Abfrage, wenn Sie die Abfrage als subselect.
InformationsquelleAutor der Antwort RC.
Gibt es eine alternative zur Wiederholung der
CONCAT
Ausdruck oder die Verwendung von Unterabfragen. Sie können Gebrauch machen von derHAVING
Klausel, die erkennt Spaltenaliase.Hier ist eine funktionierende SQL Fiddle.
InformationsquelleAutor der Antwort Bogdan