Isso é facilmente alcançável com o operador less() e greatest() , mas como o MySQL não os suporta, você precisa usar uma construção CASE para obter o menor/maior. Com duas colunas, tudo bem, mas essa solução fica bastante confusa quando mais colunas estão envolvidas
select distinct
case
when source < destination then source
else destination
end as source,
case
when source > destination then source
else destination
end as destination
from hyperlinks