1

在我在服务器上升级我的 mysql 版本之前,一切正常。

但现在它给出错误并显示查询失败。我没有改变任何代码。

SELECT id,frequency,speed FROM signal where active='Y'

它在 from 子句中显示错误。为什么会发生这种情况?

4

2 回答 2

2

SIGNAL显然是MySQL 的保留字。将其括在反引号中。

SELECT id,frequency,speed FROM `signal` where active='Y'

每当我在FROM子句或其他地方遇到错误时,当查询似乎在语法上正确时,我会查阅保留字列表以查找我不知道已保留的内容(并且我承认我不知道SIGNAL已保留直到我检查了列表)。

一些研究尚未确定何时SIGNAL添加,但我怀疑它是在 MySQL 5.5 中。

于 2012-04-15T12:46:16.727 回答
2

似乎您在 Mysql5.5 中升级,是 Mysql5.5SIGNAL中的新保留关键字。 您的表名在查询中Escape带有反引号(`) 。

试试下面:

 SELECT id,frequency,speed FROM `signal` where active='Y'
于 2012-04-15T12:46:29.810 回答