欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mysql 存在多條數(shù)據(jù)時(shí)如何按時(shí)間取最新的那一組數(shù)據(jù)(思路詳解)

 更新時(shí)間:2024年04月24日 09:05:22   作者:jerry-89  
這篇文章主要介紹了Mysql 存在多條數(shù)據(jù)時(shí)如何按時(shí)間取最新的那一組數(shù)據(jù),本文給大家分享兩種思路結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下

1、數(shù)據(jù)如下,獲取每個(gè)用戶最近的一次登錄數(shù)據(jù)

思路1:order by + group by

  先根據(jù)UserId+LogInTime排序,再利用Group分組,即可得到每個(gè)User_Id的最新數(shù)據(jù)。

SELECT * FROM login_db l ORDER BY l.user_id, l.login_time DESC;

  排序結(jié)果:

  再對(duì)結(jié)果進(jìn)行分組:

SELECT * FROM (
    SELECT *
    FROM login_db l
    ORDER BY l.user_id, l.login_time DESC
    ) lb
GROUP BY lb.user_id;

  得到的結(jié)果如下:

   從結(jié)果可知,這并不是我們預(yù)期的結(jié)果。因MySql版本的原因,對(duì)Group By進(jìn)行了優(yōu)化,導(dǎo)致前面的排序不再生效,而是保留了排序前的結(jié)果。

  為了使Group By根據(jù)我們排序后的結(jié)果進(jìn)行分組,需要加入關(guān)鍵字Limit告訴MySql需要進(jìn)行排序。

  修改之后的語(yǔ)句如下:

  
SELECT * FROM (
    SELECT *
    FROM login_db l
    ORDER BY l.user_id, l.login_time DESC LIMIT 100000
    ) lb
GROUP BY lb.user_id;

 得到了預(yù)期的結(jié)果:

   從SQL中,不難看出,這個(gè)方法存在一個(gè)缺陷,就是必須要保證原始數(shù)據(jù)在limit范圍內(nèi),否則分組的結(jié)果就不會(huì)是全部的數(shù)據(jù),結(jié)果自然也是不能保證的。

思路2:多表關(guān)聯(lián)

  利用多表關(guān)聯(lián),同一緯度(User_Id)下的登錄時(shí)間進(jìn)行比較,得出最近的時(shí)間。

  
select b1.*
from login_db b1
where (select COUNT(1)
       from login_db b2
       where b2.user_id = b1.user_id and b1.login_time <= b2.login_time) <= 1;

到此這篇關(guān)于Mysql 存在多條數(shù)據(jù)時(shí)如何按時(shí)間取最新的那一組數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Mysql 取最新數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解析優(yōu)化MySQL插入方法的五個(gè)妙招

    解析優(yōu)化MySQL插入方法的五個(gè)妙招

    本篇文章是對(duì)優(yōu)化MySQL插入方法的五個(gè)妙招進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • MySQL 聯(lián)合索引與Where子句的優(yōu)化 提高數(shù)據(jù)庫(kù)運(yùn)行效率

    MySQL 聯(lián)合索引與Where子句的優(yōu)化 提高數(shù)據(jù)庫(kù)運(yùn)行效率

    網(wǎng)站系統(tǒng)上線至今,數(shù)據(jù)量已經(jīng)不知不覺(jué)上到500M,近8W記錄了。涉及數(shù)據(jù)庫(kù)操作的基本都是變得很慢了,這篇文章主要是說(shuō)明配置并不是數(shù)據(jù)庫(kù)操作慢的主要原因
    2012-01-01
  • MySQL日期時(shí)間函數(shù)知識(shí)匯總

    MySQL日期時(shí)間函數(shù)知識(shí)匯總

    這篇文章主要介紹了MySQL日期時(shí)間函數(shù)知識(shí)匯總,這不同數(shù)據(jù)庫(kù)之間基本相同,只會(huì)有個(gè)別函數(shù)的差異。下文詳細(xì)介紹,需要的小伙伴可以參考一下
    2022-03-03
  • 檢查MySQL中的列是否為空或Null的常用方法

    檢查MySQL中的列是否為空或Null的常用方法

    在MySQL數(shù)據(jù)庫(kù)中,我們經(jīng)常需要檢查某個(gè)列是否為空或Null,空值表示該列沒(méi)有被賦值,而Null表示該列的值是未知的或不存在的,在本文中,我們將討論如何在MySQL中檢查列是否為空或Null,并探討不同的方法和案例,需要的朋友可以參考下
    2023-11-11
  • 詳解Mysql中的視圖

    詳解Mysql中的視圖

    mysql中的視圖,視圖與表有很多相似的地方,視圖也是由若干個(gè)字段以及若干條記錄構(gòu)成,視圖也可以作為select語(yǔ)句的數(shù)據(jù)源
    2017-04-04
  • MySQL排序優(yōu)化詳細(xì)解析

    MySQL排序優(yōu)化詳細(xì)解析

    這篇文章主要介紹了MySQL排序優(yōu)化詳細(xì)解析,MySQL有兩種方式生成有序的結(jié)果:1.通過(guò)排序操作;2.按索引順序掃描,如果EXPLAIN出來(lái)的type列的值為"index",則說(shuō)明使用了索引掃描來(lái)做排序,需要的朋友可以參考下
    2024-01-01
  • 超越MySQL 對(duì)流行數(shù)據(jù)庫(kù)進(jìn)行分支的知識(shí)小結(jié)

    超越MySQL 對(duì)流行數(shù)據(jù)庫(kù)進(jìn)行分支的知識(shí)小結(jié)

    盡管MySQL是最受歡迎的程序之一,但是許多開(kāi)發(fā)人員認(rèn)為有必要將其拆分成其他項(xiàng)目,并且每個(gè)分支項(xiàng)目都有自己的專長(zhǎng)。該需求,以及 Oracle 對(duì)核心產(chǎn)品增長(zhǎng)緩慢的擔(dān)憂,導(dǎo)致出現(xiàn)了許多開(kāi)發(fā)人員感興趣的子項(xiàng)目和分支
    2012-01-01
  • MySQL實(shí)現(xiàn)統(tǒng)計(jì)過(guò)去12個(gè)月每個(gè)月的數(shù)據(jù)信息

    MySQL實(shí)現(xiàn)統(tǒng)計(jì)過(guò)去12個(gè)月每個(gè)月的數(shù)據(jù)信息

    這篇文章主要介紹了MySQL實(shí)現(xiàn)統(tǒng)計(jì)過(guò)去12個(gè)月每個(gè)月的數(shù)據(jù)信息,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • sql ROW_NUMBER()與OVER()方法案例詳解

    sql ROW_NUMBER()與OVER()方法案例詳解

    這篇文章主要介紹了sql ROW_NUMBER()與OVER()方法案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Navicat出現(xiàn)無(wú)法遠(yuǎn)程連接MySql服務(wù)器問(wèn)題的解決辦法

    Navicat出現(xiàn)無(wú)法遠(yuǎn)程連接MySql服務(wù)器問(wèn)題的解決辦法

    這篇文章主要介紹了Navicat出現(xiàn)無(wú)法遠(yuǎn)程連接MySql服務(wù)器問(wèn)題的解決辦法,文章通過(guò)思路判斷出現(xiàn)問(wèn)題的情況,然后進(jìn)行逐一排查,確定問(wèn)題出現(xiàn)的原因并給出解決辦法,本文對(duì)此問(wèn)題的解決介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08

最新評(píng)論