Heim >Backend-Entwicklung >PHP-Tutorial >Warum gibt meine Postgresql-Abfrage „Spalte ‚Smith' existiert nicht' zurück, obwohl die Spalte existiert?

Warum gibt meine Postgresql-Abfrage „Spalte ‚Smith' existiert nicht' zurück, obwohl die Spalte existiert?

DDD
DDDOriginal
2024-12-02 06:08:10820Durchsuche

Why Does My Postgresql Query Return

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!

Stellungnahme:
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