Jest to łatwe do osiągnięcia za pomocą operatora najmniejszego() i największego(), ale ponieważ MySQL ich nie obsługuje, musisz użyć konstrukcji CASE, aby uzyskać mniejszy/większy. Przy dwóch kolumnach jest to w porządku, ale to rozwiązanie staje się dość bałaganiarskie, gdy w grę wchodzi więcej kolumn
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