mysql - 为什么我每次都需要在 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;
有什么方法可以在不需要定义表名的情况下恢复它?
解决方案
Stored 是 MySQL 保留字,因此 MySQL 认为您打算使用该保留字。
当你用表名限定它时,它就知道你在说什么。
更新:您可以包装存储在反引号中(如下所示),因此它被视为文本而不是保留字。
SELECT COUNT(*) FROM camera WHERE `stored`=3;
推荐阅读
- node.js - 将 jest coverageThreshold 应用于聚合报告
- python - 即使在 Google Colab 中留下大量 RAM,运行时也会崩溃
- python - IDLE 或 PyCharm 中没有带有 wexpect 代码的输出
- jquery - 如何动态地将锚标签添加到 URL 并在 URL 中滚动到标题
- powershell - 获取变量中的事件日志消息内容
- .net - 如何离线开发 .NET Core 应用程序
- c# - Azure 和 Google OAuth 2.0 上的服务器端 Blazor 无法正常工作
- javascript - 如何使我的函数游戏循环以更新用户和计算机分数?
- alexa-skills-kit - 如何更新/编辑我的旧 Alexa Skills?
- google-bigquery - 将 bigquery 数据移至 Redshift