组功能的使用无效

时间:2012-07-30 06:01:58

标签: php mysql

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

  

无效使用群组功能

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

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

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

试试这个

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

答案 2 :(得分:0)

不知道错误是什么,我假设它来自MIN(balance + 5)。我认为你的意思是MIN(balance) + 5 - MIN应该只采用列名,而不是算术表达式。

答案 3 :(得分: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') . "');