重複キー+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;
group by、distinct、サブクエリ、さらにはorderbyを必要とするものよりもはるかに高速である必要があります。これにはファイルソートも必要ありません。これにより、大きな一時テーブルのパフォーマンスが低下します。元のテーブルを完全にスキャンする必要がありますが、それを回避することはできません。