Erreur MySQL: Colonne inconnue dans la clause 'where'
J'ai une table appelée bank
avec trois colonnes: uid
nick
balance
.
Je suis en train de créer une requête qui sera de retour à l'équilibre basé sur le pseudo, et j'obtiens une erreur Unknown column 'Alex' in 'where clause'
lorsque j'utilise cette requête:
SELECT b.balance FROM bank AS b WHERE b.nick=`Alex` LIMIT 1
N'importe qui peut voir ce que je fais de mal ici?
source d'informationauteur Markum | 2012-04-13
Vous devez vous connecter pour publier un commentaire.
backticks (`) sont utilisés pour les identifiants, comme les noms de table, les noms de colonnes, etc. Les guillemets simples(') sont utilisés pour les littéraux de chaîne.
Que vous voulez faire:
Ou, pour être plus explicite:
Quand il n'y a pas d'ambiguïté, et lors de la table/colonne les noms n'ont pas de caractères spéciaux ou des espaces, alors vous pouvez le laisser désactivé.
Ici est une partie de la documentation qui est sec et difficile à lire: http://dev.mysql.com/doc/refman/5.0/en/identifiers.html
Mais voici une question sur dba.stackoverflow qui est plus facile à lire: https://dba.stackexchange.com/questions/23129/benefits-of-using-backtick-in-mysql-queries
Et ici, c'est une très bonne page que je recommande à tous de lire: http://www.sitepoint.com/forums/showthread.php?408497-the-big-bad-thread-of-quot-MySQL-Best-Practices-and-Other-Useful-Information-quot
Vous utilisez le mauvais "`"
Utiliser " au lieu
Vous devez utiliser des apostrophes (
'
), pas de marques de graduation pour les valeurs de vos champsLes graduations sont utilisés pour désigner les noms de champ.
Ce sujet m'aide beaucoup. Le
SQL
a été la cause de l'erreur, parce que les variables n'étaient pas avec elle:select * from accounts where name='$variable'
où. Mais c'est arrivé quand seulement quand je ajouter plus d'une condition dansWHERE
.Une autre raison pour une telle erreur, eh bien, il n'y a pas une telle colonne dans le tableau. Vérifier l'orthographe, de la casse des lettres, des erreurs typographiques et de la présence réelle du champ donné dans la définition de la table.