MySQL對某一字段去重

mysql有一個去重關鍵字distinct,但是如果查詢的字段有很多,而想要去重的字段只是其中的某一個,那麼僅僅用distinct是完成不了的,distince只能做到你查詢的那些字段都是重複時纔會去重。
比如有一張用戶表的數據是這樣的:
在這裏插入圖片描述
這裏我們本意是想查出一條數據,如果是這樣寫SQL語句:

SELECT DISTINCT USER_NAME FROM u_user

這樣查出來的數據的確只有一條。可是如果我們是這樣寫:

SELECT DISTINCT USER_NAME,USER_SEX FROM u_user

那麼出來的還是兩條數據,因爲這個去重是指 USER_NAME 和 USER_SEX 同時重複時纔會去重。
注意distinct只能放在字段的最前面,所以如果這麼寫是會報錯的:

SELECT USER_SEX, DISTINCT USER_NAME FROM u_user

這種寫法MySQL不支持,會報錯。這裏可以用distinct和group by相結合的方式去完成:

SELECT USER_NAME, USER_SEX,COUNT(DISTINCT USER_NAME) FROM u_user GROUP BY USER_NAME

這樣結果就只有一條數據了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章