MySQL:使用Group By更新字段

MySQL:使用Group By更新字段,mysql,sql,Mysql,Sql,这是一个例子: 表mysql架构: id name salary 1 david 20 2 jack 30 3 david 10 我想添加按名称分组,以避免david的重复更新 我该怎么做呢?尝试使用LIMIT,它是MySQL使用的SQL的扩展: $sql = "UPDATE table SET salary = salary + 5 WHERE name = 'david' ORDER BY id LIMIT 1"; 使用G

这是一个例子:

表mysql架构:

id name salary 1 david 20 2 jack 30 3 david 10 我想添加
按名称分组
,以避免
david的重复更新

我该怎么做呢?

尝试使用LIMIT,它是MySQL使用的SQL的扩展:

$sql = "UPDATE table SET salary = salary  + 5 WHERE name = 'david' 
        ORDER BY id LIMIT 1";

使用GROUP BY没有任何意义,因为更新组中的第一行、最后一行还是所有行是不明确的。MySQL不支持UPDATE语句中的GROUP BY子句。

您将更新哪一行,在您的示例中是1行还是3行?是要同时更新这两行还是只更新其中一行?如果是这样,您需要使用不同的查询,使用
id
,而不是
name
。这根本没有意义。分组依据如何定义您所指的
david
$sql = "UPDATE table SET salary = salary  + 5 WHERE name = 'david' 
        ORDER BY id LIMIT 1";