У меня есть таблица с именами и фамилиями, и я хотел бы проверить, нет ли переставленных данных.
Таблица
+----+-----------+----------+
| Id | firstname | lastname |
+----+-----------+----------+
| 0 | Raphael | Thomas |
| 1 | Robert | Vincent |
| 2 | Philippe | Michel |
| 3 | Vincent | Robert |
| 4 | Thomas | Raphael |
+----+-----------+----------+
Я бы хотел нравится группировать результат и затем выделять любые пары
Ожидаемый результат
+----+-----------+----------+
| Id | firstname | lastname |
+----+-----------+----------+
| 0 | Raphael | Thomas |
| 4 | Thomas | Raphael |
| 1 | Robert | Vincent |
| 3 | Vincent | Robert |
+----+-----------+----------+
Это работает, когда число символов fisrtname + lastname отличается, но не когда сумма та же
SELECT t1.id, t1.lastname, t1.firstname
FROM table t1 JOIN table t2 ON t2.lastname = t1.firstname AND t2.firstname = t1.lastname
ORDER BY length(t1.lastname)+length(t1.firstname)
Я также пытался преобразовать в HEX и суммировать результаты HEX, но получил ошибку «DOUBLE value is out of range».
Как я могу отсортировать это из