主頁 > 知識庫 > mysql中count(), group by, order by使用詳解

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

熱門標(biāo)簽:地圖標(biāo)注人員兼職 ps制作地圖標(biāo)注gif 沈陽電銷外呼系統(tǒng)原理是什么 上海智能外呼系統(tǒng)代理商 聊城智能外呼系統(tǒng)運(yùn)營商 寧波企業(yè)外呼系統(tǒng)收費(fèi) 成都優(yōu)派外呼系統(tǒng) 電子地圖標(biāo)注電話 扎樣申請400電話

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

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;

我們可以對已經(jīng)排序的結(jié)果集,再來分組并計(jì)算數(shù)量。這里還有一個(gè)暗坑,我自己不小心給躲過去了,其實(shí)count()會(huì)造成order by排序無效,舉個(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è)語句最后得到的一條記錄,其中的msg_data其實(shí)是根本沒有排序的結(jié)果,也就是數(shù)據(jù)庫原順序,應(yīng)該是先插入的一條消息,就是說時(shí)間舊的消息。為了避免這個(gè)問題,所以嵌套子查詢在這里先排序,再讓它去count()就規(guī)避了。自己無意躲過去了,還好反復(fù)改語句測試了一番才發(fā)現(xiàn)。

您可能感興趣的文章:
  • MySQL中聚合函數(shù)count的使用和性能優(yōu)化技巧
  • mysql count詳解及函數(shù)實(shí)例代碼
  • 詳細(xì)解讀MySQL中COUNT函數(shù)的用法
  • 淺談MySQL 統(tǒng)計(jì)行數(shù)的 count
  • mysql count提高方法總結(jié)
  • MySQL中無過濾條件的count詳解
  • MySQL中count(*)、count(1)和count(col)的區(qū)別匯總
  • MySQL中distinct和count(*)的使用方法比較
  • MYSQL中統(tǒng)計(jì)查詢結(jié)果總行數(shù)的便捷方法省去count(*)
  • MySQL里的found_row()與row_count()的解釋及用法
  • 詳解 MySQL中count函數(shù)的正確使用方法

標(biāo)簽:三明 林芝 朔州 咸寧 AXB 宿州 汕頭 內(nèi)江

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《mysql中count(), group by, order by使用詳解》,本文關(guān)鍵詞  mysql,中,count,group,order,使用,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《mysql中count(), group by, order by使用詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于mysql中count(), group by, order by使用詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章