Выберите не повторяющиеся записи в столбце таблицы MySQL - PullRequest
0 голосов
/ 22 ноября 2018

У меня большая таблица с двумя столбцами.Один из них является столбцом первичного идентификатора, а другой - столбцом данных.

Мне нужно выбрать только те записи, которые не дублируются в таблице.Я попробовал приведенный ниже запрос, но он занимает много времени и не уверен, что он действительно работает.

select * from (select column_name 
               from table_name 
               group by column_name 
               having count(*) = 1) x;

Что вы думаете?

Я также открыт для других попыток, если он сделает работу быстрее.

1 Ответ

0 голосов
/ 23 ноября 2018

Вы можете присоединиться к той же таблице или использовать подзапрос, чтобы проверить наличие дубликатов.Это должно быть проще для SQL-сервера, поскольку он не учитывает все дубликаты.Примерно так:

SELECT
    t1.column_name 
FROM
    table_name AS t1
WHERE
    NOT EXISTS (
        SELECT
            *
        FROM
            table_name AS t2
        WHERE
                t2.column_name = t1.column_name
            AND t2.id != t1.id
    )

ИЛИ

SELECT
    t1.column_name 
FROM
    table_name AS t1
    LEFT JOIN table_name t2 ON (
        t2.column_name = t1.column_name
        t2.id != t1.id
    )
WHERE
    t2.column.name IS NULL
...