1. 程式人生 > 其它 >獲取資料庫中最新時間的資料

獲取資料庫中最新時間的資料

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`