共計 987 個字符,預計需要花費 3 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
今天就跟大家聊聊有關怎么在 MySQL 中查詢重復數據,可能很多人都不太了解,為了讓大家更加了解,丸趣 TV 小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
表結構如下圖所示:
表明:brand
操作:
使用 SQL 語句查詢重復的數據有哪些:
SELECT * from brand WHERE brandName IN(select brandName from brand GROUP BY brandName HAVING COUNT(brandName) 1 # 條件是數量大于 1 的重復數據
)
使用 SQL 刪除多余的重復數據,并保留 Id 最小的一條唯一數據:
注意點:
錯誤 SQL:DELETE FROM brand WHERE brandName IN (select brandName from brand GROUP BY brandName HAVING COUNT(brandName) 1)
AND Id NOT IN (select MIN(Id) from brand GROUP BY brandName HAVING COUNT(brandName) 1)
提示:You can t specify target table brand for update in FROM clause 不能為 FROM 子句中的更新指定目標表“brand”
原因是:不能將直接查處來的數據當做刪除數據的條件,我們應該先把查出來的數據新建一個臨時表,然后再把臨時表作為條件進行刪除功能
正確 SQL 寫法: DELETE FROM brand WHERE brandName IN (SELECT brandName FROM (SELECT brandName FROM brand GROUP BY brandName HAVING COUNT(brandName) 1) e)
AND Id NOT IN (SELECT Id FROM (SELECT MIN(Id) AS Id FROM brand GROUP BY brandName HAVING COUNT(brandName) 1) t)
#查詢顯示重復的數據都是顯示最前面的幾條,因此不需要查詢是否最小值
結果如下圖:
看完上述內容,你們對怎么在 MySQL 中查詢重復數據有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注丸趣 TV 行業資訊頻道,感謝大家的支持。
向 AI 問一下細節