[英]MySQL query for selecting distinct rows with all possible values in a column
[英]Selecting distinct rows on all but one column
我需要獲取一個表的不同值,該表具有一個自動遞增的id字段。 我需要ID來標識,但是除了ID之外,其他所有值都相同時,我不在乎哪個ID。
我提出了以下建議,這似乎可行。 有更好的方法嗎?
SELECT id, date_f, date_t, num_n, num_d, mn, is
FROM t
GROUP BY date_f, date_t, num_n, num_d, mn, is
另一個問題是,如果多次執行查詢,是否總是返回相同的ID?
編輯:
示例數據庫:
id date_f date_t num_n num_d mn is
1 10 10 10 10 10 10
2 10 10 10 10 10 10
3 10 10 10 10 10 10
我想都是一個行的列的存儲了這些。 我不在乎id是1、2還是3,只要下次我執行查詢時該ID是相同的(不添加/刪除它們之間的任何行)即可。 到目前為止,建議使用min(id)
兩個答案似乎是個好主意。
如果您根本沒有在結果集中使用id,那么上面的答案就可以了。 如果出於任何目的在結果集中至少需要一個ID,則應稍作更改:
SELECT min(id), date_f, date_t, num_n, num_d, mn, is
FROM t
GROUP BY date_f, date_t, num_n, num_d, mn, is
它將返回與唯一集匹配的第一個ID(或者,如果需要最后一個,則使用(Max)-盡管隨着向表中添加數據,該ID可能會隨着時間而改變。
您所擁有的基本上是正確的-我要補充一點,如果您想要ID(身份),則需要添加一個匯總,例如-
SELECT min(id), date_f, date_t, num_n, num_d, mn, is
FROM t
GROUP BY date_f, date_t, num_n, num_d, mn, is
這樣可以確保您每次都獲得第一個(相同的)(除非將其刪除)
SELECT DISTINCT date_f,date_t,num_n,num_d,mn為FROM
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.