Heim >Datenbank >MySQL-Tutorial >Warum schlägt meine Abfrage mit „Spalte ‚Mary' existiert nicht' fehl, obwohl die Spalte vorhanden ist?

Warum schlägt meine Abfrage mit „Spalte ‚Mary' existiert nicht' fehl, obwohl die Spalte vorhanden ist?

Susan Sarandon
Susan SarandonOriginal
2025-01-03 15:45:39550Durchsuche

Why Does My Query Fail with

Spalte „Mary“ existiert nicht: Ein Abfragefehler

Beim Ausführen einer Abfrage kann es gelegentlich zu einer Fehlermeldung kommen, die darauf hinweist, dass a Eine bestimmte Spalte existiert nicht, obwohl sie in Ihrer Datenbank vorhanden ist. Ein solches Szenario ist, wenn die Abfrage mit fehlerhaften Zeichen auf den Spaltennamen verweist.

Der Fall von „Mary“

Im bereitgestellten Beispiel bezieht sich der Fehler auf die Spalte 'Maria'. Bei der Untersuchung der Abfrage wird jedoch deutlich, dass die Abfrage keine Spalte mit dem Namen „Mary“ enthält. Stattdessen soll „Mary“ ein Wert sein, der der Spalte „Personenname“ zugewiesen wird.

Die wichtigste Erkenntnis hier ist, dass der Fehler auf die falsche Zeichencodierung von „Mary“ zurückzuführen ist. In der Abfrage ist „Mary“ in Anführungszeichen („Mary“) eingeschlossen, bei denen es sich um Unicode-Zeichen handelt. Datenbanksysteme bevorzugen im Allgemeinen einfache einfache Anführungszeichen („Mary“), die ASCII-codiert sind.

Problemlösung

Um dieses Problem zu beheben, ersetzen Sie einfach die Anführungszeichen durch einfache einfache Anführungszeichen in der Abfrage. Ändern Sie Ihre Abfrage wie folgt:

SELECT telephone.telephonenumber as tel
FROM person, telephone
WHERE person.idperson = telephone.idperson
AND person.personname = 'Mary';

Durch diese geringfügige Anpassung sucht Ihre Abfrage nun korrekt nach Personen mit dem Namen „Mary“ und ruft deren Telefonnummern ab.

Das obige ist der detaillierte Inhalt vonWarum schlägt meine Abfrage mit „Spalte ‚Mary' existiert nicht' fehl, obwohl die Spalte vorhanden ist?. 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