Maison >base de données >tutoriel mysql >Pourquoi ma requête SQL renvoie-t-elle « La colonne « Mary » n'existe pas » ?

Pourquoi ma requête SQL renvoie-t-elle « La colonne « Mary » n'existe pas » ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-01 02:56:13452parcourir

Why Does My SQL Query Return

"La colonne 'Mary' n'existe pas" : Comprendre l'énigme du devis

Lors de l'exécution de la requête SQL suivante, vous pouvez rencontrer une erreur indiquant que la colonne 'Mary' n'existe pas :

SELECT telephone.telephonenumber AS tel
FROM person, telephone
WHERE person.idperson = telephone.idperson
AND person.personname = ‘Mary’;

Cela prête à confusion, vous ne faites pas référence à « Mary » comme nom de colonne mais plutôt comme valeur à comparer. La source de cette erreur réside dans l'utilisation de guillemets intelligents ("Mary"), au lieu de guillemets simples ("Mary"), pour délimiter la chaîne littérale.

En SQL, les guillemets intelligents sont souvent utilisé pour entourer les noms de colonnes ou les noms de tables, car ils évitent toute ambiguïté dans les cas où les identifiants pourraient entrer en conflit avec des mots réservés. Cependant, lorsqu'il s'agit de chaînes littérales, telles que la valeur que vous souhaitez comparer avec le nom de la personne, il est essentiel d'utiliser des guillemets simples simples.

En remplaçant les guillemets intelligents par des guillemets simples simples, la requête doit s'exécuter correctement. , renvoyant le numéro de téléphone correct de la personne portant le nom « Mary ». Voici la requête corrigée :

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

N'oubliez pas qu'il est crucial d'utiliser des guillemets simples pour les chaînes littérales en SQL afin d'éviter les erreurs et de garantir que vos requêtes fonctionnent comme prévu.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn