Spaltenname wird in Postgresql-Abfrage nicht erkannt
Beim Versuch, eine einfache SELECT-Anweisung in Postgresql auszuführen, kann der Fehler „column '“ auftreten. Smith‘ existiert nicht.“ Dies kann verwirrend sein, insbesondere wenn Sie wissen, dass die Spalte, auf die Sie verweisen, tatsächlich in Ihrer Datenbank vorhanden ist.
Ursache:
Das Problem ergibt sich aus der Art und Weise Postgresql verarbeitet Spaltennamen in Anführungszeichen und ohne Anführungszeichen. In diesem Fall haben Sie den Spaltennamen „lName“ in doppelte Anführungszeichen gesetzt, um anzuzeigen, dass es sich um eine exakte Übereinstimmung handelt. Der Wert, mit dem Sie es vergleichen, „Smith“, steht jedoch nicht in Anführungszeichen.
Lösung:
Um dieses Problem zu beheben, stellen Sie sicher, dass beide Spaltenname und Vergleichswert werden in Anführungszeichen derselben Art eingeschlossen. In Postgresql wird im Allgemeinen empfohlen, einfache Anführungszeichen für Zeichenfolgenliterale zu verwenden:
SELECT * FROM employee WHERE "lName" LIKE 'Smith'
Darüber hinaus möchten Sie möglicherweise die Aufnahme eines Platzhalters in Ihren LIKE-Ausdruck in Betracht ziehen. Ohne Platzhalter entspricht ein LIKE-Vergleich einer Gleichheitsprüfung. Wenn Sie eine Teilübereinstimmung durchführen möchten, fügen Sie ein Platzhalterzeichen ein, z. B. „%“:
SELECT * FROM employee WHERE "lName" LIKE '%Smith%'
Das obige ist der detaillierte Inhalt vonWarum gibt meine Postgresql-Abfrage „Spalte ‚Smith' existiert nicht' zurück, obwohl die Spalte existiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!