首页 > 解决方案 > 为什么我每次都需要在 WHERE 子句中定义表名?

问题描述

我在我的电脑上测试一个软件,我安装了一个mysql。现在我已将此软件转移到服务器上。没有任何 mysql 命令正在工作

例如,这是在我的计算机上运行的命令

SELECT COUNT(*) FROM camera WHERE stored=3;

当我尝试在我的服务器上执行它时,结果如下

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'stored=3' at line 1

但这一个正在工作

SELECT COUNT(*) FROM camera WHERE camera.stored=3;

有什么方法可以在不需要定义表名的情况下恢复它?

标签: mysqlwhere-clausenavicat

解决方案


Stored 是 MySQL 保留字,因此 MySQL 认为您打算使用该保留字。

当你用表名限定它时,它就知道你在说什么。

更新:您可以包装存储在反引号中(如下所示),因此它被视为文本而不是保留字。

SELECT COUNT(*) FROM camera WHERE `stored`=3;

推荐阅读