在我升级服务器上的mysql版本之前,一切正常。
但是现在它给出错误并显示查询失败。我在代码中没有改变任何内容。
SELECT id,frequency,speed FROM signal where active='Y'
它在from子句中显示错误。为什么会发生这种情况?
答案 0 :(得分:2)
SIGNAL
是MySQL reserved word。将它包含在反引号中。
SELECT id,frequency,speed FROM `signal` where active='Y'
每当我在FROM
子句或其他地方遇到错误时,我都不希望查询在语法上是正确的,我查阅保留字列表以查找我不知道保留的内容(并且我承认我不知道SIGNAL
被保留,直到我检查了清单。)
当SIGNAL
被添加时,一些研究尚未确定,但我怀疑它是在MySQL 5.5中。
答案 1 :(得分:2)
似乎你在Mysql 5.5中升级了,SIGNAL
在Mysql 5.5中是新的reserved keyword。
Escape
您的表名称信号在查询中带有反引号(`)。
尝试以下:
SELECT id,frequency,speed FROM `signal` where active='Y'