为什么我每次都需要在 WHERE 子句中定义 table 名称?

Why i need to define table name everytime in WHERE clause?

我在我的电脑上测试一个软件,我在上面安装了一个 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;

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

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

当您用 Table 名称限定它时,它就会知道您在说什么。

更新:您可以将存储在反引号中换行(如下所示),这样它就被视为文本而不是保留字。

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