sql语句出错

时间:2017-06-23 10:46:36

标签: mysql phpmyadmin

SELECT AVG(totalled) as mySum , `id` 
FROM (
        SELECT totalled,id 
        FROM `figure` 
        where `userid`='".$userid."' 
        ORDER BY id DESC 
        LIMIT 4
    ) t1 

我已经创建了这个语句,但我得到的错误是: 静态分析:

在分析过程中发现了3个错误。

  

预计会有表达。 (靠近“(”42号位置)   意外的标记。 (靠近“(”42号位置)   之前已解析过这种类型的子句。 (位置43处的“SELECT”附近)   SQL查询:文档

SELECT AVG(totalled) as mySum , `id` 
FROM (
        SELECT totalled,id 
        FROM `figure` 
        where `userid`='".$userid."' 
        ORDER BY id DESC 
        LIMIT 4
    ) t1

MySQL说:文档

  

1140 - 在没有GROUP BY的聚合查询中,SELECT列表的表达式#2包含非聚合列't1.id';这与sql_mode = only_full_group_by

不兼容

我需要做些什么来解决这个问题。

Table Image

1 个答案:

答案 0 :(得分:0)

Yuo有一个列(id)不在group by中,因此db引擎引发错误。这发生在从mysql 5.7开始的

SELECT AVG(totalled) as mySum , `id` 
FROM (
    SELECT totalled,id 
    FROM `figure` 
    where `userid`='".$userid."' 
    ORDER BY id DESC 
    LIMIT 4
 ) t1
group by `id`