Ik geloof dat dit het zal doen, met behulp van op dubbele sleutel + 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;
Zou veel sneller moeten zijn dan alles waarvoor groeperen op of onderscheiden of een subquery, of zelfs bestellen op, vereist is. Dit vereist niet eens een filesort, wat de prestaties op een grote tijdelijke tabel zal doden. Vereist nog steeds een volledige scan over de originele tabel, maar daar is geen ontkomen aan.