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
這樣結果就只有一條數據了。