Heim > Backend-Entwicklung > PHP-Tutorial > Warum gibt meine Postgresql-Abfrage den Fehler „Spaltenname existiert nicht' zurück?

Warum gibt meine Postgresql-Abfrage den Fehler „Spaltenname existiert nicht' zurück?

DDD
Freigeben: 2024-12-03 15:15:12
Original
332 Leute haben es durchsucht

Why Does My Postgresql Query Return a

Fehlerbehebung beim Fehler „Spaltenname existiert nicht“ in Postgresql-Abfragen

Bei der Arbeit mit Postgresql-Datenbanken ist es wichtig, die richtige Syntax einzuhalten Namenskonventionen, um Fehler zu vermeiden. Eine häufige Herausforderung besteht darin, dass bei der Abfrageausführung der Fehler „Spaltenname existiert nicht“ auftritt.

Betrachten Sie die folgende Abfrage:

SELECT * 
FROM employee 
WHERE "lName" LIKE "Smith"
Nach dem Login kopieren

Beim Ausführen dieser Abfrage erhalten Sie möglicherweise eine entsprechende Fehlermeldung die Spalte „Smith“ existiert nicht. Dies liegt daran, dass Postgresql „Smith“ in doppelten Anführungszeichen als Bezeichner (Spaltenname) und nicht als Zeichenfolge interpretiert.

Um dieses Problem zu beheben, sollten die doppelten Anführungszeichen durch einfache Anführungszeichen ersetzt werden, um ein Zeichenfolgenliteral zu kennzeichnen:

SELECT * 
FROM employee 
WHERE "lName" LIKE 'Smith'
Nach dem Login kopieren

Jetzt erkennt Postgresql „Smith“ als einen Wert, der mit der Spalte „lName“ abgeglichen werden soll, was korrekt ist zitiert.

Außerdem ist es wichtig sicherzustellen, dass der Spaltenname in der WHERE-Klausel mit dem tatsächlichen Spaltennamen in der Datenbanktabelle übereinstimmt. In diesem Fall enthält die Tabelle eine Spalte namens „lName“ mit einem Großbuchstaben „N“. Daher muss es in der Abfrage in Anführungszeichen gesetzt werden, um es von anderen möglichen Spaltennamen zu unterscheiden.

Überlegen Sie abschließend, ob Sie beabsichtigt haben, einen Platzhalter in die LIKE-Klausel aufzunehmen. In den meisten SQL-Dialekten entspricht die Verwendung von LIKE ohne Platzhalter (z. B. „Smith“) der Verwendung von =. Wenn Sie nach Teilübereinstimmungen suchen möchten, sollten Sie einen Platzhalter einfügen, z. B.:

SELECT * 
FROM employee 
WHERE "lName" LIKE '%Smith%'
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum gibt meine Postgresql-Abfrage den Fehler „Spaltenname existiert nicht' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage