mysql交换两列数据
某ai上居然给出了下面这个语句,这语句是错误的,会把两列换成一样的数据
UPDATE t_a SET col1 = col2, col2 = col1;
下面的语句是可行的
update t_a as a, t_b as b set a.col1= b.col2, a.col2= b.col1 where a.id = b.id;
下面是使用临时变量的方式
UPDATE t_a SET col1= (@temp:=col1), col1= col2, col2= @temp;
上面两种方法都是可行的,不过如果有冗余字段建议使用冗余字段分三步去实现
UPDATE t_a SET def1 = col2; UPDATE t_a SET col2 = col1; UPDATE t_a SET col1 = def1;
标签:SET,交换,col2,UPDATE,col1,mysql,两列 From: https://www.cnblogs.com/ZDY-XJ/p/18135183