一尘不染

MySQL错误:“ where子句”中的未知列

sql

我有一个名为表bank有三列:uidnickbalance

我正在尝试创建一个查询,该查询将根据昵称返回余额,并且Unknown column 'Alex' in 'where clause'在使用此查询时遇到错误:

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

有人可以在这里看到我做错了吗?


阅读 107

收藏
2021-03-10

共1个答案

一尘不染

反引号(`)用于标识符,例如表名,列名等。单引号(’)用于字符串文字。

您想做:

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

或者,更明确地说:

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

如果没有歧义的可能性,并且表/列名称没有特殊字符或空格,则可以将`设置为off。

这是一些干燥且难以阅读的文档:http
:
//dev.mysql.com/doc/refman/5.0/en/identifiers.html

但这是有关dba.stackoverflow的一个相关问题,该问题更易于阅读:https
://dba.stackexchange.com/questions/23129/benefits-of-using-backtick-in-mysql-
queries

这是一个非常好的页面,我建议大家阅读:http
:
//www.sitepoint.com/forums/showthread.php?
408497-the-big-bad-thread-of-quot-MySQL-Best-Practices-
and其他有用信息

2021-03-10