亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

mysql索引 - mysql 用戶的消息查詢問題

瀏覽:90日期:2022-06-15 09:44:48

問題描述

問題解答

回答1:

目的就是想獲取1001用戶與最新的10個(gè)人的最新通信記錄就是了.大體思路:1、先獲取1001用戶給哪幾個(gè)人發(fā)消息,各自最后一條id多少2、獲取其他用戶給1001用戶發(fā)的消息,各自用戶的最后一條id是多少3、整合,你要獲取的是兩個(gè)用戶之間通信的最后一條id,因此只要把上面兩個(gè)結(jié)果集union all起來,再根據(jù)用戶id來分組,取最后一條即可

select m.uid,max(m.max_id) maxid from(select receiver_id uid,max(message_id) max_id from messages where user_id=’1001’ group by receiver_idunion all select user_id uid,max(message_id) max_id from messages where receiver_id=’1001’ group by user_id)mgroup by m.uidorder by maxid desclimit 10;

至于效率的話,當(dāng)然是建立user_id和receiver_id各自索引

回答2:

你還需要一個(gè)時(shí)間字段created_at

·SELECT * from messages where user_id = 1001 OR receiver_id = 1001 ORDER BY created_at DESC LIMIT 10;·

給user_id和receiver_id加上唯一索引。效率很高。沒問題的。

回答3:

大佬邀請,趕緊飛奔過來,恕在下愚昧,讀了三遍總算搞清楚了,雖然沒寫過發(fā)消息的,但是我想的方案是要么你在表里在加個(gè)區(qū)別這條記錄是發(fā)送還是接收吧

這樣的能用sql取嗎?

SELECT 創(chuàng)建時(shí)間字段,接收消息字段,user_id,receiver_id FROM messages user_id = 1001 ORDER BY create_time DESC LIMIT 10;· 取出著1001用戶最新的前十條信息就可以了,你管它發(fā)給誰的你說到底你不就想知道他最新發(fā)了多少條消息嘛,這里就是他發(fā)給別人的

然后下載最新的 PHP 輸出出來,推薦PDO

如果可以的話消息表的數(shù)據(jù)會很大效率怎樣?

user_id和receiver_id 加個(gè)索引試試嘛,不知諸位大神還有其他什么更高效的方法沒

相關(guān)文章:
主站蜘蛛池模板: 日韩手机在线视频 | 中文字幕在线一区二区三区 | 91短视频在线观看免费最新91 | 日本黄色大片免费观看 | 国产欧美日韩精品高清二区综合区 | 亚洲综合色网站 | 性色xxx视频 | 国产无套在线播放 | 一级a毛片 | 亚洲黄色美女视频 | 色视频免费观看高清完整 | 精品在线免费观看 | 欧美成人亚洲 | 国产高清专区 | 国产欧美日韩不卡在线播放在线 | 高清成人综合 | 永久免费看www色视频 | 日本欧美成人免费观看 | 日韩一区二区不卡中文字幕 | 一级级黄 | 国产a级特黄的片子视频 | 国产精品成人免费 | 国产或人精品日本亚洲77美色 | 黄色片网址在线观看 | 热99re久久精品2久久久 | 午夜国产精品理论片久久影院 | 亚洲精品久中文字幕 | 91亚洲福利 | 日本一级作爱片在线观看 | 国产一区美女视频 | 亚洲免费在线播放 | 午夜拍拍 | 99免费精品视频 | 在线不卡一区二区 | 51国产午夜精品免费视频 | 午夜激情免费视频 | 特级aav毛片日本免费视频 | 日韩免费一级a毛片在线播放一级 | 成 人 免费 黄 色 视频 | 亚洲和欧美毛片久久久久 | 182tv午夜线路一线路二 |