2011-08-22 40 views
2

这是一个例子:MySQL的:使用组更新域通过

表的MySQL架构:

 
id name salary 
1 david 20 
2 jack 30 
3 david 10 

查询:

 

$sql = "UPDATE table SET salary = salary + 5 WHERE name = 'david' "; 
 

我想加入Group By name以避免重复更新david 我该怎么做?

+2

你会更新哪一行,在你的例子中是1还是3? –

+0

你想要更新两行还是只更新一行?如果是这样,你需要使用'id'而不是'name'来使用不同的查询。 – McHerbie

+0

这甚至没有意义。 GROUP BY将如何定义您指的是哪个“david”? –

回答

2

尝试使用限制,这是一个扩展到由MySQL使用SQL:

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

这是没有意义的使用GROUP BY,因为这将是含糊不清是否该组中更新的第一行,或最后一行或所有行。 MySQL在UPDATE语句中不支持GROUP BY子句。

+0

简单如此:0 – Cheerio