如何用distinct消除重復記錄的同時又能選取多個字段值?
需求是:我要消除name字段值重復的記錄,同時又要得到id字段的值,其中id是自增字段。
select distinct name from t1 能消除重復記錄,但只能取一個字段,現在要同時取id,name這2個字段的值。
select distinct id,name from t1 可以取多個字段,但只能消除這2個字段值全部相同的記錄
最后解決方法:
SELECT id,name FROM t1 WHERE id IN(SELECT MAX(id) FROM t1 GROUP BY name) order by id desc
注意開頭的 id 的 一定要,后面的order by 里有的字段一定要加進select 結果,要不然排序無效