MySQL [错误] 1064
Posted
技术标签:
【中文标题】MySQL [错误] 1064【英文标题】:MySQL [Error] 1064 【发布时间】:2017-06-15 09:45:45 【问题描述】:当我在 Navicat 的 VIEWS 表上运行 EXPLAIN 时,我得到了这个 mysql 错误 1064,并且无法弄清楚这个简短代码中的错误究竟来自哪里:
SET @runningbal = 0;
SELECT
cashinflow_v.TxnDate,
cashinflow_v.TxnType,
cashinflow_v.Amount,
@runningbal := @runningbal + cashinflow_v.Amount as Balance
FROM
cashinflow_v
ORDER BY cashinflow_v.TxnDate
错误提示:
[SQL] EXPLAIN SET @runningbal = 0;
SELECT
cashinflow_v.TxnDate,
cashinflow_v.TxnType,
cashinflow_v.Amount,
@runningbal := @runningbal + cashinflow_v.Amount as Balance
FROM
cashinflow_v
ORDER BY cashinflow_v.TxnDate
[Err] 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 'SET
@runningbal = 0;
SELECT
cashinflow_v.TxnDate,
cashinflow_v.TxnType,
cash' at line 1
如果有人可以帮助我,我将不胜感激。谢谢!
【问题讨论】:
设置前有密码吗? 实际上没有。我正在使用 Navicat。 【参考方案1】:变化:
来自:
EXPLAIN SET @runningbal = 0;
到
SET @runningbal = 0;
【讨论】:
如果存在 [SQL] 也会删除。 实际上它在没有解释的情况下运行。但我只是担心,当我运行 EXPLAIN 来检查查询的性能时,它会给我那个消息错误。 这是您的问题,这就是我发布更改它的原因。 谢谢。很好的帮助!【参考方案2】:EXPLAIN
statement 需要表名或以下类型之一的查询:
它的设计目的不是提供任意 SQL 命令的信息(怎么可能?)。
如果是您的 SQL 客户端试图解释查询,您可能需要指示它将代码块作为脚本而不是单独的语句来处理。
【讨论】:
抱歉忘了提及我使用的是 VIEWS(虚拟表)而不是 DB 表本身。话虽如此,您的意思是 EXPLAIN 不能在 VIEWS 表上运行? 我不认为我是在说...我是说你不能像EXPLAIN SET @runningbal = 0;
那样对随机代码 sn-ps 运行解释。以上是关于MySQL [错误] 1064的主要内容,如果未能解决你的问题,请参考以下文章
MySQL:错误 1142 (42000) 和错误 1064 (42000)