Maison >base de données >tutoriel mysql >Pourquoi ma requête échoue-t-elle avec « La colonne « Mary » n'existe pas » malgré la colonne existante ?

Pourquoi ma requête échoue-t-elle avec « La colonne « Mary » n'existe pas » malgré la colonne existante ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-03 15:45:39567parcourir

Why Does My Query Fail with

La colonne « Mary » n'existe pas : un incident d'interrogation

Lors de l'exécution d'une requête, vous pouvez parfois rencontrer un message d'erreur indiquant qu'un une colonne particulière n'existe pas, même si elle est présente dans votre base de données. Un de ces scénarios est celui où la requête fait référence au nom de la colonne avec des caractères erronés.

Le cas de « Mary »

Dans l'exemple fourni, l'erreur concerne la colonne 'Marie'. Cependant, après examen de la requête, il devient évident qu'il n'y a pas de colonne nommée « Mary » dans la requête. Au lieu de cela, « Mary » est censé être une valeur attribuée à la colonne « personname ».

Le point clé à retenir ici est que l'erreur provient d'un codage de caractère incorrect de « Mary ». Dans la requête, « Mary » est entourée de guillemets intelligents (« Mary »), qui sont des caractères Unicode. Les systèmes de bases de données préfèrent généralement les guillemets simples (« Mary »), qui sont codés en ASCII.

Résoudre le problème

Pour corriger ce problème, remplacez simplement les guillemets intelligents par guillemets simples simples dans la requête. Modifiez votre requête comme suit :

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

En effectuant ce léger ajustement, votre requête recherchera désormais correctement les personnes portant le nom 'Mary' et récupérera leurs numéros de téléphone.

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