根据MySql中的两列删除重复记录

K A*_*ngh 6 mysql group-by group-concat

我想删除多余的重复记录

即在显示的图像中有两条记录corporate_id = 5category_id = 19,如何删除任何重复的行(这corporate_sed_id是主键)

在此处输入图片说明

小智 10

用这个 :-

DELETE
FROM
    corporate
WHERE
    corporate_sed_id IN(
    SELECT
        *
    FROM
        (
        SELECT
            MIN(corporate_sed_id)
        FROM
            corporate
        GROUP BY
            corporate_id,
            category_id
        HAVING
            COUNT(corporate_sed_id) > 1
    ) temp
)
Run Code Online (Sandbox Code Playgroud)

  • 如果有多个具有相同 id 的情况,这只会删除一个重复项,对吗?必须运行多次才能删除所有重复项。有没有办法让它适用于任意数量的重复项(即只保留一个)? (3认同)