1. 程式人生 > >利用group by查詢id最大那條的資料

利用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+金額 就更大