Wierzę, że to wystarczy, używając zduplikowanego klawisza + 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;
Powinna być znacznie szybsza niż wszystko, co wymaga grupowania według, rozróżniania lub podzapytania, a nawet porządkowania według. Nie wymaga to nawet sortowania plików, co może obniżyć wydajność dużej tabeli tymczasowej. Nadal będzie wymagał pełnego skanowania oryginalnego stołu, ale nie da się tego uniknąć.