Heim >Datenbank >MySQL-Tutorial >Warum gibt meine SQL-Abfrage „Spalte ‚Mary' existiert nicht' zurück?
„Spalte ‚Mary‘ existiert nicht“: Das Zitat-Rätsel verstehen
Beim Ausführen der folgenden SQL-Abfrage kann ein Fehler auftreten zeigt an, dass die Spalte „Maria“ nicht existiert:
SELECT telephone.telephonenumber AS tel FROM person, telephone WHERE person.idperson = telephone.idperson AND person.personname = ‘Mary’;
Verwirrenderweise beziehen Sie sich nicht darauf „Mary“ als Spaltenname, sondern eher als Vergleichswert. Die Ursache dieses Fehlers liegt in der Verwendung von Anführungszeichen („Mary“) anstelle einfacher Anführungszeichen („Mary“) zur Begrenzung des Zeichenfolgenliterals.
In SQL werden häufig Anführungszeichen verwendet werden zum Einschließen von Spaltennamen oder Tabellennamen verwendet, da sie Mehrdeutigkeiten verhindern, wenn Bezeichner mit reservierten Wörtern kollidieren könnten. Wenn es jedoch um Zeichenfolgenliterale geht, wie z. B. den Wert, den Sie mit dem Personennamen vergleichen möchten, ist es wichtig, einfache einfache Anführungszeichen zu verwenden.
Durch Ersetzen der intelligenten Anführungszeichen durch einfache einfache Anführungszeichen sollte die Abfrage erfolgreich ausgeführt werden und gibt die richtige Telefonnummer für die Person mit dem Namen „Mary“ zurück. Hier ist die korrigierte Abfrage:
SELECT telephone.telephonenumber AS tel FROM person, telephone WHERE person.idperson = telephone.idperson AND person.personname = 'Mary';
Denken Sie daran, dass es wichtig ist, einfache einfache Anführungszeichen für Zeichenfolgenliterale in SQL zu verwenden, um Fehler zu vermeiden und sicherzustellen, dass Ihre Abfragen wie beabsichtigt funktionieren.
Das obige ist der detaillierte Inhalt vonWarum gibt meine SQL-Abfrage „Spalte ‚Mary' existiert nicht' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!