獲取MySQL的表中每個(gè)userid最后一條記錄的方法
如下表:
CREATE TABLE `t1` ( `userid` int(11) DEFAULT NULL, `atime` datetime DEFAULT NULL, KEY `idx_userid` (`userid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `t1` ( `userid` int(11) DEFAULT NULL, `atime` datetime DEFAULT NULL, KEY `idx_userid` (`userid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
數(shù)據(jù)如下:
MySQL> select * from t1; +--------+---------------------+ | userid | atime | +--------+---------------------+ | 1 | 2013-08-12 11:05:25 | | 2 | 2013-08-12 11:05:29 | | 3 | 2013-08-12 11:05:32 | | 5 | 2013-08-12 11:05:34 | | 1 | 2013-08-12 11:05:40 | | 2 | 2013-08-12 11:05:43 | | 3 | 2013-08-12 11:05:48 | | 5 | 2013-08-12 11:06:03 | +--------+---------------------+ 8 rows in set (0.00 sec) MySQL> select * from t1; +--------+---------------------+ | userid | atime | +--------+---------------------+ | 1 | 2013-08-12 11:05:25 | | 2 | 2013-08-12 11:05:29 | | 3 | 2013-08-12 11:05:32 | | 5 | 2013-08-12 11:05:34 | | 1 | 2013-08-12 11:05:40 | | 2 | 2013-08-12 11:05:43 | | 3 | 2013-08-12 11:05:48 | | 5 | 2013-08-12 11:06:03 | +--------+---------------------+ 8 rows in set (0.00 sec)
其中userid不唯一,要求取表中每個(gè)userid對(duì)應(yīng)的時(shí)間離現(xiàn)在最近的一條記錄.初看到一個(gè)這條件一般都會(huì)想到借用臨時(shí)表及添加主建借助于join操作之類(lèi)的.
給一個(gè)簡(jiǎn)方法:
MySQL> select userid,substring_index(group_concat(atime order by atime desc),",",1) as atime from t1 group by userid; +--------+---------------------+ | userid | atime | +--------+---------------------+ | 1 | 2013-08-12 11:05:40 | | 2 | 2013-08-12 11:05:43 | | 3 | 2013-08-12 11:05:48 | | 5 | 2013-08-12 11:06:03 | +--------+---------------------+ 4 rows in set (0.03 sec) MySQL> select userid,substring_index(group_concat(atime order by atime desc),",",1) as atime from t1 group by userid; +--------+---------------------+ | userid | atime | +--------+---------------------+ | 1 | 2013-08-12 11:05:40 | | 2 | 2013-08-12 11:05:43 | | 3 | 2013-08-12 11:05:48 | | 5 | 2013-08-12 11:06:03 | +--------+---------------------+ 4 rows in set (0.03 sec)
Good luck!
相關(guān)文章
MySQL數(shù)據(jù)庫(kù)優(yōu)化之分表分庫(kù)操作實(shí)例詳解
這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)優(yōu)化之分表分庫(kù)操作,結(jié)合實(shí)例形式詳細(xì)分析了mysql數(shù)據(jù)庫(kù)分表分庫(kù)垂直拆分、水平拆分相關(guān)原理以及應(yīng)用案例,需要的朋友可以參考下2020-01-01MySQL字符之char、varchar類(lèi)型簡(jiǎn)析
varchar和char是MySQL中的兩種數(shù)據(jù)類(lèi)型,都是用來(lái)存儲(chǔ)字符串的,下面這篇文章主要給大家介紹了關(guān)于MySQL字符之char、varchar類(lèi)型的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09SQL中from_unixtime函數(shù)的使用方法實(shí)例
在MySQL數(shù)據(jù)表設(shè)計(jì)中,時(shí)間字段一般都設(shè)計(jì)為時(shí)間戳格式的,開(kāi)發(fā)人員去查看的時(shí)候就顯得有點(diǎn)不方便,可以使用FROM_UNIXTIME轉(zhuǎn)換成日期格式進(jìn)行查看,下面這篇文章主要給大家介紹了關(guān)于SQL中from_unixtime函數(shù)的使用方法的相關(guān)資料,需要的朋友可以參考下2022-08-08SQL的substring_index()用法實(shí)例(MySQL字符串截取)
substring_index?(字符串,分隔符,序號(hào)),主要作用是用于截取目標(biāo)字符串,下面這篇文章主要給大家介紹了關(guān)于SQL中substring_index()用法(MySQL字符串截取)的相關(guān)資料,需要的朋友可以參考下2023-01-01MySQL如何導(dǎo)入csv格式數(shù)據(jù)文件解決方案
本文將詳細(xì)介紹MySQL如何導(dǎo)入csv格式數(shù)據(jù)文件并提供詳細(xì)解決方案,需要了解的朋友可以參考下2012-11-11mysql 觸發(fā)器語(yǔ)法與應(yīng)用示例
這篇文章主要介紹了mysql 觸發(fā)器語(yǔ)法與應(yīng)用,結(jié)合實(shí)例形式詳細(xì)分析了mysql 觸發(fā)器的基本語(yǔ)法與插入、更細(xì)、刪除等相關(guān)操作技巧,需要的朋友可以參考下2020-05-05用SQL語(yǔ)句解決mysql導(dǎo)入大數(shù)據(jù)文件的問(wèn)題
今天的這篇文章用來(lái)討論如何解決導(dǎo)入mysql大數(shù)據(jù)文件的問(wèn)題,其實(shí)說(shuō)的簡(jiǎn)單了就是一條SQL語(yǔ)句,而如果你是一名SQL高手,那完全可以略過(guò)此文。2010-08-08Mysql快速插入千萬(wàn)條數(shù)據(jù)的實(shí)戰(zhàn)教程
這篇文章主要給大家介紹了關(guān)于Mysql快速插入千萬(wàn)條數(shù)據(jù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03