0

是什么导致了这个错误?:

组函数的无效使用

这是导致错误的sql代码:

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

4 回答 4

1

聚合函数需要由GROUP BY子句引起的聚合。没有一个,查询无效。

于 2012-07-30T06:05:24.993 回答
1

试试这个

$sql_data = "UPDATE `database1`.`users` SET `balance` = MIN(`balance`) + 5  
WHERE ('" . $session->value('user_id') . "') "
于 2012-07-30T06:05:42.627 回答
0

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

于 2012-07-30T06:06:35.230 回答
0

我认为这就是你要找的:

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') . "');
于 2012-07-30T06:08:22.733 回答