Jag tror att detta kommer att göra det, med hjälp av en duplicate key + 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;
Bör vara mycket snabbare än allt som kräver grupp efter eller distinkt eller en underfråga, eller till och med ordning efter. Detta kräver inte ens en filsortering, vilket kommer att döda prestanda på ett stort temporärt bord. Kommer fortfarande att kräva en fullständig skanning över originaltabellen, men det går inte att undvika.