好了,要完成这项工作真的很艰难。

我有一个员工数据库。我希望更好地处理此数据。我的意思是,表中的许多条目都有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/

10-16 15:05
查看更多