组函数的使用无效


Invalid use of group functions

导致此错误的原因是什么?:

无效使用组功能

以下是导致错误的sql代码:

$sql_data = "UPDATE `database1`.`users` SET `balance` = MIN(`balance` + 5) 
WHERE ('" . $session->value('user_id') . "') ";

试试这个

$sql_data = "UPDATE `database1`.`users` SET `balance` = MIN(`balance`) + 5  
WHERE ('" . $session->value('user_id') . "') "
聚合函数需要由GROUP BY子句引起的聚合。如果没有,则查询无效。

在不知道错误是什么的情况下,我假设它源于MIN(balance + 5)。我想你的意思是MIN(balance) + 5-MIN应该只取一个列名,而不是一个算术表达式。

我想这就是您想要的:

UPDATE database1.users a
    INNER JOIN
        (SELECT id, MIN(balance)
         FROM database1.users
         WHERE user_id= ('" . $session->value('user_id') . "')
         GROUP BY id
        ) b
        ON a.id = b.id
WHERE user_id = ('" . $session->value('user_id') . "');