利用group by查詢id最大那條的數據

有時會有這樣的需求,需要查詢字段a相同的所有數據裏面的ID最大的某個數據

比如說賬單都是按時間插入的,我們要查詢 洗腳 賬單裏面 最近更新 的那條的支付金額

一般來說,如果支付金額在數據庫裏面做了嚴格限制或者現實情況不可能出現更大的金額
假設不超過1000塊
那麼我們可以
select max(id*1000+金額) -max(id*1000) from table;
這就是我們需要的數據,這樣查詢就可以避免聯表查最大ID了。

因爲max(id*1000+金額)必定是最大的ID那條纔可能取這個數據,減去 id*1000 自然就得到金額了

id之間最小差距是1,所以與ID相乘的應該大於金額,這樣就可以保證無論如何,ID更大 id*1000+金額 就更大

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章