2012-04-13 13 views
11

Tengo una tabla llamada bank con tres columnas: uid, nick, balance.Error de MySQL: columna desconocida en 'where clause'

Estoy tratando de crear una consulta que devolverá el equilibrio basado en la mella, y yo estoy recibiendo un error Unknown column 'Alex' in 'where clause' cuando se utiliza esta consulta:

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

Puede alguien ver lo que estoy haciendo mal aquí ?

+0

¿Usó backticks alrededor de "Alex" o son esas comillas simples? – gmalette

Respuesta

26

invertidas (`) se utilizan para identificadores, como nombres de tabla, columna, etc. Las comillas simples (') son utilizado para literales de cadena.

que quieres hacer:

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

o, para ser más explícito:

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

Cuando no hay posibilidad de ambigüedad, y cuando los nombres de tablas/columnas no tienen caracteres especiales o espacios, entonces puedes dejar el `apagado.

Aquí es algún tipo de documentación que está seco y difícil de leer: http://dev.mysql.com/doc/refman/5.0/en/identifiers.html

Pero aquí es una pregunta relacionada en dba.stackoverflow que es más fácil de leer: https://dba.stackexchange.com/questions/23129/benefits-of-using-backtick-in-mysql-queries

Y aquí es una muy buena página que Recomiendo a todos leer: http://www.sitepoint.com/forums/showthread.php?408497-the-big-bad-thread-of-quot-MySQL-Best-Practices-and-Other-Useful-Information-quot

5

Es necesario utilizar comilla simple ('), no marcas de graduación para los valores de sus campos

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

marcas de graduación se utilizan para denotar nombres de campo.

6

Está utilizando el mal "`"

Uso 'en lugar

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

Otra razón para tal error es, bueno, no existe dicha columna en la tabla dada. Verifique la ortografía, la letra mayúscula, los errores tipográficos y la presencia real del campo dado en la definición de la tabla.

Cuestiones relacionadas