【笔记】MySQL删除重复记录保留一条

DELETE
FROM
    ex_digitalmoney_account
WHERE
    coinCode = 'NST'
AND id IN (
    SELECT
        id
    FROM
        (
            SELECT
                id
            FROM
                ex_digitalmoney_account
            WHERE
                coinCode = 'NST'
            AND customerId IN (
                SELECT
                    customerId
                FROM
                    ex_digitalmoney_account
                WHERE
                    coinCode = 'NST'
                AND hotMoney = 0
                GROUP BY
                    customerId
                HAVING
                    count(customerId) > 1
            )
        ) tab1
)
AND id NOT IN (
    SELECT
        min_id
    FROM
        (
            SELECT
                min(id) min_id
            FROM
                ex_digitalmoney_account
            WHERE
                coinCode = 'NST'
            AND hotMoney = 0
            GROUP BY
                customerId
            HAVING
                count(customerId) > 1
        ) tab2
)

 

posted @ 2019-01-23 16:15  我的bug  阅读(186)  评论(0编辑  收藏  举报