Как получить все различные комбинации из 2 столбцов в MySQL

У меня есть таблица t со значениями

 +------+------+------+ | col1 | col2 | col3 | +------+------+------+ | 1 | 2 | x | | 1 | 3 | x | | 1 | 4 | x | | 2 | 1 | x | | 2 | 3 | x | | 2 | 4 | x | +------+------+------+ 

Мне нужен этот результат:

 +------+------+------+ | col1 | col2 | col3 | +------+------+------+ | 1 | 2 | x | | 1 | 3 | x | | 1 | 4 | x | | 2 | 3 | x | | 2 | 4 | x | +------+------+------+ 

Примечание (1,2) совпадает с (2,1)

Чтобы использовать предложение DISTINCT , вам необходимо отсортировать первые два столбца вручную:

 SELECT DISTINCT CASE WHEN (col1 < col2) THEN col1 else col2 END AS Col1, CASE WHEN (col1 < col2) THEN col2 else col1 END AS Col2, col3 FROM t 

См. Этот SQLFiddle