在使用 mysql時有時需要查詢出某個字段不重復的記錄雖然mysql提供有distinct這個關鍵字來過濾掉多余的重復記錄只保留一條但往往只用它來返回不重復記錄的條數而不是用它來返回不重記錄的所有值其原因是distinct只能返回它的目標字段而無法返回其它字段這個問題讓我困擾了很久用distinct不能解決的話我只有用二重循環查詢來解決而這樣對於一個數據量非常大的站來說無疑是會直接影響到效率的所以我花了很多時間來研究這個問題網上也查不到解決方案期間把朋友拉來幫忙結果是我們兩人都郁悶了!
下面先來看看例子
table
id name
a
b
c
c
b
庫結構大概這樣這只是一個簡單的例子實際情況會復雜得多
比如我想用一條語句查詢得到name不重復的所有數據那就必須使用distinct去掉多余的重復記錄
select distinct name from table
得到的結果是:
name
a
b
c
好像達到效果了可是我想要得到的是id值呢?改一下查詢語句吧:
select distinct name id from table
[] [] []
From:http://tw.wingwit.com/Article/program/MySQL/201311/29591.html