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

mysql中count(), group by, order by使用詳解

 更新時(shí)間:2017年05月21日 11:30:23   作者:linux_c_coding_man  
mysql中order by 排序查詢、asc升序、desc降序,group by 分組查詢、having 只能用于group by子句、作用于組內(nèi),having條件子句可以直接跟函數(shù)表達(dá)式。使用group by 子句的查詢語(yǔ)句需要使用聚合函數(shù)。

最近做IM的時(shí)候遇到一個(gè)問(wèn)題,同時(shí)用到了這三個(gè)關(guān)鍵字。就是查詢一個(gè)人的離線消息詳情,我們服務(wù)端返回給客戶端顯示的這個(gè)詳情包括了三個(gè)內(nèi)容,第一個(gè)要求列出離線這段時(shí)間哪些人或者群給你發(fā)了消息,第二個(gè)這其中的某個(gè)人或者群發(fā)了多少條離線消息,第三個(gè)拿出最新的一條顯示出來(lái)。很明顯,group by分組哪些人或者群給你發(fā)了離線消息,count()得到離線消息數(shù)量,order by時(shí)間來(lái)排序拿出最新的消息。

select count(1) as cnt, msg_data from t_im_chat_offline_msg where to_company_id = ? and to_user_id = ? order by create_time desc group by from_company_id, from_user_id;

然后果不其然group by和order by一起檢索就報(bào)錯(cuò)了,我們可以用嵌套子查詢。

select count(1) as cnt, msg_data from (select * from t_im_chat_offline_msg where to_company_id = ? and to_user_id = ? order by create_time desc) as temp_table group by from_company_id, from_user_id;

我們可以對(duì)已經(jīng)排序的結(jié)果集,再來(lái)分組并計(jì)算數(shù)量。這里還有一個(gè)暗坑,我自己不小心給躲過(guò)去了,其實(shí)count()會(huì)造成order by排序無(wú)效,舉個(gè)例子:

select count(1) as cnt, msg_data from t_im_chat_offline_msg where to_company_id = ? and to_user_id = ? order by create_time desc;

這個(gè)語(yǔ)句最后得到的一條記錄,其中的msg_data其實(shí)是根本沒(méi)有排序的結(jié)果,也就是數(shù)據(jù)庫(kù)原順序,應(yīng)該是先插入的一條消息,就是說(shuō)時(shí)間舊的消息。為了避免這個(gè)問(wèn)題,所以嵌套子查詢?cè)谶@里先排序,再讓它去count()就規(guī)避了。自己無(wú)意躲過(guò)去了,還好反復(fù)改語(yǔ)句測(cè)試了一番才發(fā)現(xiàn)。

相關(guān)文章

  • MySQL查詢語(yǔ)句過(guò)程和EXPLAIN語(yǔ)句基本概念及其優(yōu)化

    MySQL查詢語(yǔ)句過(guò)程和EXPLAIN語(yǔ)句基本概念及其優(yōu)化

    在MySQL中我們經(jīng)常會(huì)使用到一些查詢語(yǔ)句,如果使用合適的索引會(huì)大大簡(jiǎn)化和加速查找,下面小編來(lái)和大家一起學(xué)習(xí)一下知識(shí)
    2019-05-05
  • MySQL索引失效的幾種情況詳析

    MySQL索引失效的幾種情況詳析

    這篇文章主要給大家介紹了關(guān)于MySQL索引失效的幾種情況,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 修改MySQL的默認(rèn)密碼的四種小方法

    修改MySQL的默認(rèn)密碼的四種小方法

    對(duì)于windows平臺(tái)來(lái)說(shuō)安裝完MySQL后,系統(tǒng)就已經(jīng)默認(rèn)生成了許可表和賬戶,下文中就教給大家如何修改MySQ的默認(rèn)密碼。
    2015-09-09
  • 簡(jiǎn)述MySQL InnoDB存儲(chǔ)引擎

    簡(jiǎn)述MySQL InnoDB存儲(chǔ)引擎

    這篇文章主要介紹了MySQL InnoDB存儲(chǔ)引擎的相關(guān)資料,幫助大家更好的了解MySQL的存儲(chǔ)引擎,感興趣的朋友可以了解下
    2020-08-08
  • Navicat查詢結(jié)果不能修改的原因及解決方法

    Navicat查詢結(jié)果不能修改的原因及解決方法

    下面小編就為大家?guī)?lái)一篇Navicat查詢結(jié)果不能修改的原因及解決方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-12-12
  • 當(dāng)Mysql行鎖遇到復(fù)合主鍵與多列索引詳解

    當(dāng)Mysql行鎖遇到復(fù)合主鍵與多列索引詳解

    這篇文章主要給大家介紹了關(guān)于當(dāng)Mysql行鎖遇到復(fù)合主鍵與多列索引的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Mysql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • MySQL分頁(yè)優(yōu)化

    MySQL分頁(yè)優(yōu)化

    這篇文章主要為大家詳細(xì)介紹了MySQL分頁(yè)優(yōu)化,內(nèi)容思路很詳細(xì),有意對(duì)MySQL分頁(yè)優(yōu)化的朋友可以參考一下
    2016-04-04
  • 連接遠(yuǎn)程mysql數(shù)據(jù)庫(kù)失敗常見(jiàn)原因及解決方案

    連接遠(yuǎn)程mysql數(shù)據(jù)庫(kù)失敗常見(jiàn)原因及解決方案

    這篇文章主要介紹了連接遠(yuǎn)程mysql數(shù)據(jù)庫(kù)失敗常見(jiàn)原因及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • mysql全面解析json/數(shù)組

    mysql全面解析json/數(shù)組

    這篇文章主要介紹了mysql全面解析json/數(shù)組,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07

最新評(píng)論