MySQL通过update语句交换两行记录非唯一的属性

UPDATE student AS S1 JOIN student AS S2 ON (S1.id = 4 AND S2.Id = 2) SET S1.date = S2.date, S2.date = S1.date;

注:

如果所交换的属性加了唯一索引,那么交换无法完成。

指定了AUTO_INCREMENT的列必须要建索引,不然会报错,索引可以为主键索引,当然也可以为非主键索引。(不一定要做主键)