MYSQL Удаление дубликатов в смешанном порядке - PullRequest
0 голосов
/ 28 февраля 2020

Как удалить дубликаты в следующем порядке

1 2
2 1
1 3
4 1

и выводить только

1 2
1 3
4 1

Ответы [ 3 ]

2 голосов
/ 28 февраля 2020

Рассмотрим следующее ...

DROP TABLE IF EXISTS my_table;

CREATE TABLE my_table
(id SERIAL PRIMARY KEY
,user1 INT NOT NULL
,user2 INT NOT NULL
);

INSERT INTO my_table (user1,user2) VALUES
(1, 2),
(2, 1),
(1, 3),
(4, 1);

SELECT x.* 
  FROM my_table x
  JOIN 
     ( SELECT MIN(id) id
         FROM my_table 
        GROUP 
           BY LEAST(user1,user2)
            , GREATEST(user1,user2)
     ) y
    ON y.id = x.id;
+----+-------+-------+
| id | user1 | user2 |
+----+-------+-------+
|  1 |     1 |     2 |
|  3 |     1 |     3 |
|  4 |     4 |     1 |
+----+-------+-------+
0 голосов
/ 28 февраля 2020

Вы можете использовать предложение DISTINCT для удаления дубликатов. Команда DISTINCT в SQL извлекает уникальные данные из вашей таблицы. Чтобы удалить дубликаты, вы можете выполнить инструкцию, аналогичную приведенной ниже:

SELECT DISTINCT Column_Name
FROM Table_Name

ВЫХОД: 1 2 ИЛИ 2 1

Пожалуйста, дайте мне знать, если это поможет.

0 голосов
/ 28 февраля 2020

Используйте GROUP BY для объединения дубликатов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...