2012-04-13 14 views
11

Ho una tabella denominata bank con tre colonne: uid, nick, balance.Errore MySQL: colonna sconosciuta in "clausola where"

Sto cercando di creare una query che restituirà l'equilibrio basato sul nick, e sto ottenendo un errore Unknown column 'Alex' in 'where clause' quando uso questa query:

SELECT b.balance FROM bank AS b WHERE b.nick=`Alex` LIMIT 1 

Chiunque può vedere quello che sto facendo male qui ?

+0

Hai usato i backtick intorno a "Alex" o sono quei singlequotes? – gmalette

risposta

26

apici inversi (`) sono utilizzati per gli identificatori, come nomi di tabella, i nomi delle colonne, ecc virgolette singole (') sono usato per stringhe letterali.

si vuole fare:

SELECT b.balance FROM bank AS b WHERE b.nick='Alex' LIMIT 1 

o, per essere più esplicito:

SELECT `b`.`balance` FROM `bank` AS b WHERE `b`.`nick`='Alex' LIMIT 1 

Quando non v'è alcuna possibilità di ambiguità, e quando la tabella nomi/colonna non hanno caratteri speciali o spazi, quindi puoi lasciare il `off.

Ecco alcuni documentazione è secco e difficile da leggere: http://dev.mysql.com/doc/refman/5.0/en/identifiers.html

Ma qui è una questione connessa su dba.stackoverflow che è più facile da leggere: https://dba.stackexchange.com/questions/23129/benefits-of-using-backtick-in-mysql-queries

E qui è una buona pagina che Raccomando a tutti di leggere: http://www.sitepoint.com/forums/showthread.php?408497-the-big-bad-thread-of-quot-MySQL-Best-Practices-and-Other-Useful-Information-quot

5

è necessario utilizzare una sola citazione ('), non segni di graduazione per i valori dei vostri campi

SELECT b.balance FROM bank AS b WHERE b.nick='Alex' LIMIT 1 

tacche vengono utilizzati per indicare i nomi dei campi.

6

Si utilizza il torto "`"

Usa 'invece

SELECT b.balance FROM bank AS b WHERE b.nick='Alex' LIMIT 1 
-3

Un altro motivo per un tale errore è, beh, non esiste una tale colonna nella tabella specificata. Controllare l'ortografia, il caso delle lettere, gli errori tipografici e la presenza effettiva del campo dato nella definizione della tabella.

Problemi correlati