我相信使用重复键+ ifnull()可以做到这一点:
create table tmp like yourtable;alter table tmp add unique (text1, text2);insert into tmp select * from yourtable on duplicate key update text3=ifnull(text3, values(text3));rename table yourtable to deleteme, tmp to yourtable;drop table deleteme;
应该比任何需要分组依据或不重复或子查询甚至排序依据的速度都要快得多。这甚至不需要文件排序,这将破坏大型临时表的性能。仍然需要对原始表进行全面扫描,但这是不可避免的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)