好了,要完成这项工作真的很艰难。
我有一个员工数据库。我希望更好地处理此数据。我的意思是,表中的许多条目都有employee_sales_id为“?”的行。每个员工可以有多行(每次他们换工作)。对于同一员工,某些条目具有employee_sales_id,而其他条目则没有。我要扫描我的表并更新所有“?”可以从另一行中选取值的位置。 Employee_id对于每个员工都是唯一的。
DB看起来像这样:
Employee_id | employee_sales_id | name
1234 | abc | Jim Smith
1234 | abc | Jim Smith
1234 | ? | Jim Smith
1234 | abc | Jim Smith
您会看到第三行。我想修复该问题并用abc更新。有很多员工,所以我不能手动做到这一点。它必须是一个sql脚本。使其在插入时处理数据也很好。
最佳答案
UPDATE employee
JOIN
(SELECT employee_id,employee_sales_id FROM employee
GROUP BY employee_id
HAVING COUNT(employee_sales_id)>1
AND employee_sales_id!='?')x
ON employee.employee_id=x.employee_id
SET employee.employee_sales_id=x.employee_sales_id
WHERE employee.employee_sales_id='?'
SQL FIDDLE
关于mysql - sql循环更新数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21959369/