我有一個問題,使用該組時正確排序我的結果。它似乎顯示數據庫中的第一個條目,而不是組中的最新條目。如何分組和正確訂購
實施例:
ID(自動增量)|名稱
1 |安妮
2 | james
3 |安妮
4 | brad
正如你所看到的,我有多次輸入「安妮」,這就是爲什麼我使用該組。然後我會喜歡它顯示最近的「安妮」,這將是條目「3」。相反,它顯示的第一個 「安妮」(1)
我查詢
「BY ID DESC
任何幫助,將不勝感激SELECT * FROM 表 GROUP BY名稱的順序。
我有一個問題,使用該組時正確排序我的結果。它似乎顯示數據庫中的第一個條目,而不是組中的最新條目。如何分組和正確訂購
實施例:
ID(自動增量)|名稱
1 |安妮
2 | james
3 |安妮
4 | brad
正如你所看到的,我有多次輸入「安妮」,這就是爲什麼我使用該組。然後我會喜歡它顯示最近的「安妮」,這將是條目「3」。相反,它顯示的第一個 「安妮」(1)
我查詢
「BY ID DESC
任何幫助,將不勝感激SELECT * FROM 表 GROUP BY名稱的順序。
試試這個;它會工作:
SELECT * FROM TABLE
INNER JOIN (SELECT MAX(id) AS id
FROM TABLE
group by name)
ids ON TABLE.id = ids.id
可能的解決方案:
SELECT id, name
FROM TABLE
WHERE id IN (SELECT MAX(id) FROM TABLE GROUP BY name)
的問題是,你選擇的所有字段(使用*很少是一個好主意),所以每行都是唯一的,因此沒有什麼可組上。
嘗試:
SELECT
Name,
MAX(ID)
FROM
TABLE
GROUP BY
Name
嘗試
SELECT DISTINCT name
FROM table
ORDER BY id DESC
建立在另一個前面回答已經提供,這將SQL避免到GROUP BY名稱:
SELECT
DISTINCT Name,
MAX(ID)
FROM
TABLE