Я пытаюсь сделать что-то с дублирующимися записями в базе данных mysql. однако я не хочу удалять записи, и только два столбца дублируются. Как я могу найти только эти записи?
можете ли вы разместить дополнительную информацию о структуре таблицы и что вы имеете в виду, что некоторые из них дублируются, но только двумя столбцами?
В любом случае, вы можете посмотреть в GROUP BY
, COUNT
и HAVING
SELECT `duped_field1`, `duped_field2`, COUNT(*) `tot` FROM `table` GROUP BY `duped_field1`, `duped_field2` HAVING `tot` > 1
Общий принцип поиска дубликатов состоит в том, чтобы просто использовать group by
и having count(*) > 1
Если вы просто хотите узнать значения повторяющихся столбцов:
select col1, col2 from table group by col1, col2 having count(*) > 1
Если, однако, вы хотите увидеть все поля, в которых дублируются два столбца:
select t.* from @tbl t where exists (select * from @tbl d where d.col1 = t.col1 and d.col2 = t.col2 group by d.col1 having COUNT(*) > 1)