Jeg tror, dette vil gøre det, ved at bruge på 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 være meget hurtigere end noget, der kræver gruppe efter eller særskilt eller en underforespørgsel, eller endda rækkefølge efter. Dette kræver ikke engang en filsortering, som vil dræbe ydeevnen på et stort midlertidigt bord. Vil stadig kræve en fuld scanning over den originale tabel, men det er ikke til at undgå.