当前位置: 首页 > 面试题库 >

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

邵献
2023-03-14
问题内容

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

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

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

或者,更明确地说:

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其他有用信息



 类似资料:
  • 我试图在WHERE子句中将一个列从外部查询传递给内部查询,如下所示,MySQL不喜欢这样做。我不确定如何重写这个查询使其工作。 我很想知道如何让这个工作或重写它,使它将工作。我使用的是MySQL5.6,所以我没有可用的窗口函数,否则我认为可以工作。

  • 为什么查询给出这个错误: #1054-“WHERE子句”中得列“NOPL”未知?

  • 错误:java.SQL.sqlsyntaxerrorexception:您的SQL语法中有一个错误;请查看与您的MariaDB服务器版本相对应的手册,以便在第1行'by name'附近使用正确的语法

  • 此函数有问题。它应该返回使用下面的sql调用收集的数据的json字符串。问题是,当通过服务器访问页面时(例如-localhost/app/API/states/Alabama/1/10.json),我得到一个错误代码“500”。奇怪的是,数据在使用.json和不使用appending.json的情况下按预期显示。据我所知,控制器和模型设置得很好,但错误代码仍然存在: {“code”:500,“ur

  • 问题内容: 我正在一个已经存在的cakephp 1.3项目中,我需要向数据库中添加一个新表。我的控制器中有这个: 这给了我这个错误: 这是它正在尝试创建的查询: 显然我的控制器代码是错误的,但是我不确定如何将Email表与ShootingPlacement关联起来。我认为我的模型是正确的。到目前为止,如果我有这个: 它将从Shooting,ShootingPlacement和Person中检索行,