獲取資料庫中最新時間的資料
阿新 • • 發佈:2021-10-29
https://www.cnblogs.com/Objecting/p/13903607.html
之前寫過一種方法,現在這個方法感覺更好一點
需求:取出表裡最新時間的一條資料
現在有一種新的思路,
是用的開窗函式(mysql8.0),先把相同的資料進行分組,並且按照時間倒序,這樣會有一個名次,然後再用名次等於 1 的當做條件
SELECT * FROM ( SELECT t.name, t.des, t.`value`, rank() over ( PARTITION BY t.`name` ORDER BY t.date DESC ) mm FROM t_base t ) temp WHERE temp.mm= 1
還有另一種思路
mysql 5.7
以上是下面程式碼查詢出來的資料,自己呼叫自己,每次執行到where條件是,都會用到a 表,然後出去找a表的條件
#mysql 5.7
any_value() 這個函式是讓資料庫迴歸到mysql5.7不然會報一個分組的錯誤,網上說可以配置資料庫修改這個問題,但實際上是sql不規範的問題
SELECT any_value(a.`name`) code, any_value(a.des) name, any_value(`value`) value FROM t_base AS a WHERE date =( SELECT max( date ) FROM t_base AS b WHERE a.`name`= b.`name` ) GROUP BY `name`