Distinct:用來過濾重復記錄。往往只用它來返回不重復記錄的條數,而不是用它來返回不重記錄的所有值。其原因是distinct只有用二重循環查詢來解決,而這樣對於一個數據量非常大的站來說,無疑是會直接影響到效率的。
ID | NAME |
1 | A |
2 | B |
3 | B |
4 | C |
1.例子:查詢Name不重復的所有數據。注意:distinct必須放在開頭
select distinct name from table
A |
B |
C |
2.查詢Name不重復的所有數據,包括Id.
select distinct name, id from table
1 | A |
2 | B |
3 | B |
4 | C |
所以需要注意的是:distinct后面有多個字段,是多條件去重,只有當這幾個條件都相同時才是重復記錄。
3.想要得到如下結果怎么寫sql
1 | A |
2 | B |
4 | C |
select * from table group by name
總結:
distinct是用來去重的
必須放在select后面的第一個
distinct后面有多個字段是多條件去重,只有當這幾個條件都相同時才是重復記錄。