该查询应该是什么?

时间:2010-02-10 11:46:31

标签: sql

如何在SQL中交换记录。我有一个案例,我必须将一名员工的记录交换到另一名员工,例如我必须更新,如“头上的 A帽子和A头上的B帽子”。 只有我需要查询,我有字段。

这应该是最好的方法?有没有简单的查询呢?

2 个答案:

答案 0 :(得分:3)

hats和员工'A'和'B'的示例,使用员工表上的self-join进行MySQL:

UPDATE
    employees AS e1
JOIN 
    employees AS e2 ON (e1.employee_id = 'A' AND e2.employee_id = 'B')
SET
    e1.hat = e2.hat,
    e2.hat = e1.hat;

进一步阅读:

答案 1 :(得分:2)

declare @hatIdA int
declare @hatIdB int

select @hatIdA = hatId from employees where empID = 'A'

select @hatIdB = hatId from employees where empID = 'B'

update employees set hadId = @hatIdB where empID = 'A'

update employees set hadId = @hatIdA where empID = 'B'

我会这样做......