Anda dapat menggunakan kueri seperti ini:
select
min(id) as id,
least(sender,recipient) as sender,
greatest(sender,recipient) as recipient
min(text) as text
from
tablename
group by
least(sender,recipient),
greatest(sender,recipient)
(atau Anda dapat menggunakan fungsi agregat lain untuk teks, seperti group_concat, atau Anda harus menggabungkan nama tabel dua kali untuk mendapatkan pesan pertama atau terakhir dari obrolan, tetapi ini tergantung pada apa yang ingin Anda kembalikan)