MySQL phpMyAdmin 中的解析错误 ("This type of clause was previously parsed")

MySQL parsing error in phpMyAdmin ("This type of clause was previously parsed")

我有以下 SQL 查询:

SELECT SUM(tmp.mval), tmp.timekey FROM
(SELECT teghamas, 
        MAX(arzheq) as mval, 
        ceil(UNIX_TIMESTAMP(zhamanak)/(60 * 60)) AS timekey
   FROM `masnakcutyun`
   LEFT JOIN teghkentron ON `masnakcutyun`.`teghKentronId`=`teghkentron`.`teghKentronId` 
  WHERE teghkentron.hamaynq="London" group by timekey, teghkentron.teghamas)         
AS tmp
GROUP BY tmp.timekey

它在 phpMyAdmin 中运行良好。但是那里有一条警告说:

"This type of clause was previously parsed (near select)"。

你能猜出问题出在哪里吗?查询可以执行并 return 预期的结果。

MySQL 允许在 from 子句中写入子查询,但这是已知的 issue,您可以创建视图并使用它:

CREATE VIEW viewname AS (SELECT teghamas, 
    MAX(arzheq) as mval, 
    ceil(UNIX_TIMESTAMP(zhamanak)/(60 * 60)) AS timekey
    FROM `masnakcutyun`
    LEFT JOIN teghkentron ON `masnakcutyun`.`teghKentronId`=`teghkentron`.`teghKentronId` 
    WHERE teghkentron.hamaynq="London" group by timekey, teghkentron.teghamas) ;

SELECT SUM(mval) as MySum, timekey 
FROM viewname
GROUP BY timekey

这似乎是 phpMyAdmin 解析器错误,参见 the issue on github,查询本身有效。

我收到了同样的错误消息,在我的例子中,我只有几个没有分号结尾的 UPDATE 子句。

UPDATE `table` SET `column`='val2' WHERE `id`=1 **;**
UPDATE `table` SET `column`='val2' WHERE `id`=2