1. 程式人生 > >mysql sql 語句 查詢重複資料 並刪除重複資料 只保留一條

mysql sql 語句 查詢重複資料 並刪除重複資料 只保留一條

**#例1:根據手機號customer_id查詢所有重複的資料**
SELECT
    *
FROM
    aad_apply_main
WHERE
    customer_id IN (
        SELECT
            customer_id
        FROM
            aad_apply_main 
        GROUP BY
            customer_id
        HAVING
            count(customer_id) > 1
    ) ORDER BY customer_id DESC ;



#例2:根據手機號customer_id刪除重複資料且只保留一條
DELETE
  FROM
    aad_apply_main
  WHERE
  	stdmerno='***' AND
    customer_id IN (SELECT
        *
    FROM
        (SELECT
            customer_id
        FROM
            aad_apply_main WHERE stdmerno='***' 
        GROUP BY customer_id
        HAVING COUNT(customer_id) > 1) t1)
    AND apply_no NOT IN (SELECT
        *
    FROM
        (SELECT
            MIN(apply_no)
        FROM
            aad_apply_main WHERE stdmerno='***' 
        GROUP BY customer_id
        HAVING COUNT(customer_id) > 1) t2)
**欄位解釋:**
	customer_id : 根據此欄位的重複來刪除資料;
	stdmerno    : 根據此欄位來約束需要去重複的物件
	apply_no    : 此欄位為表的主鍵id欄位