
2017-09-04 | &nbs"<λp; 發布者:梁國(guó)芳 &nbsε'↔p; | 查看(kàn):γφ3320次
phpSQL語句查詢最近(jìn)聯系人(rén)聊天記錄(即最近±÷(jìn)一(yī)條消息),獲取到(dào)的(dσ✘©e)類似微(wēi)信或者qq的(de)消息列表
網上(shàng)大(dà)部分(fēn)是©(shì)錯(cuò)誤的(de),下(xià)β★≠面看(kàn)下(xià)我的(de)表:
SET FOREIGN_KEY_CHECKS=0;
--'∑λ ----------------------------
-φ∑- Table struc&₹ture for `tbl05`
-- ---₩≤÷φ-------------------------
DROP&nb>✔sp;TABLE IF EXISTS↕₹ `tbl05`;
CREATE TABLE&nδ←×bsp;`tbl05` (
`i₹πd` int(11) NOT σ≥≈;NULL AUTO_INCREMEN™✔T,
`from€₩£` int(11) NOT NULL,
&nb↓γsp; `to` int(☆ 11) NOT NULL,
"≥ `msg` va<α& rchar(255) NOT NULL,
 ★π ; `tline` intγ₩♠(11) NOT NULL DEFAU±$"€LT '0',
§β `aaaa` varch→♥ar(255) NOT NULL&n¥♥bsp;DEFAULT '',
¥↔®
PRIMARY K÷•♦≈EY (`id`)
) φ→ENGINE=MyISAM AUTO_INCREMENT=12' δ★ DEFAULT CHARSET=utf $☆8;
-- --------♠¶↓≥--------------------
↑π∏↓
-- Records of&n<π∞λbsp;tbl05
-- --------™©Ω--------------------
INSER₽♦T INTO `tbl05` VAL÷™ ×UES ('1', '1©γα39;, '2', '55555↕÷ π5', '10'γ€;, '');
INSERT ♥∑INTO `tbl05` VALUES (π><∏'2', '1', ≥₩9;3', 'hhhhhh', ↕₹'10', '≤☆"');
INSERT INTO `tbl0→↕↓✘5` VALUES ♦↔('3', '3',&nπ≈∑₩bsp;'1', 'ooo$'oooooo', '↔ ∑10', '&Ω♣#39;);
INSERT INTOπ>§↔ `tbl05` VALU¶§ES ('4', '2',♦∑✔ '3', '↔®hhhhhh', '10', ≤ Ω✘39;');
INSERT&nbs₩₩p;INTO `tbl05`&n☆<×bsp;VALUES ('5', δ¥39;3', '2', Ω9;888888888888888',↕β '11',&nσ÷£bsp;'');
INα←♣SERT INTO `t×πbl05` VALUES ('6'," '2', ™<£¥'1', '我就(λ₽jiù)是(shì) 神', 'ε ;9', '');
<∏INSERT INTO `tbl05`&nb★₹δsp;VALUES ('7', &¶←#39;2', '1₩₽λ9;, 'hhhhhh', '≠δ12', '');
INSERT ×™>;INTO `tbl05` VALUES Ω>;('8', '4'♠→;, '5', ×π¶'你(nǐ)好(hǎo)', '0£δ39;, '');
♦ε₹&INSERT INTO `tbl05` VAγβLUES ('9', ↕™9;5', '4',&n®★bsp;'你(nǐ)也(yě)好(hǎo)',&nb♥↔β§sp;'1', '')€>;
INSERT INTO `tbl05` ≥←∏;VALUES ('10"&α9;, '4', '5£÷9;, '你(nǐ)是(shì§'§♣)哪裡(lǐ)的(de)', ≥$9;2', '');
INS 'ERT INTO `tbl05δΩ≥` VALUES ("®∞®39;11', '5', ₩©39;4', '我是(shì)北(b∞¥ěi)京的(de)', '3δ♦∑9;, '')↕φ™;建好(hǎo)表 後,看(kàn)下(xià)查詢語句
SELECT T1.id, T1.`fr$λom`, T1.`to`, T1.♦→ →msg, T1.tline ∏♣φ;FROM ( SELECT id, `f♠©αrom`, `to`, tline, ≤↑•msg, CASE WHEN (`×&from` <= `to`) THEN ←∏Ωπ;CONCAT(`from`, '-'↑"♠™, `to`) ELSE CONCAT(✘₽`to`, '-', `fr∞β✘ om`) END AS ft FRφ↔OM tbl05) AS T1 IN§÷ε←NER JOIN ( SELECT♦₹₽< MAX(tline) AS&nb sp;tline, CASE φ£↑WHEN (`from` &®←γlt;= `to`) THEN&★γδ∏nbsp;CONCAT(`from`,&nb♥Ω★sp;'-', `to`)&nb>✘sp; ELSE CONCAT(`to`,&€≤nbsp;'-', `fro✘λαm`) END AS&nb↑≈sp;ft FROM Ω<tbl05 GROUP BY ft ©↑ ) AS T2 ON T1.tline& × = T2.tline AND&nb≥$sp;T1.ft = T2.ft
以上(shàng) 為(wèi)查詢到(dào)所有(yǒu)的(de)λ©£ 消息列表 。
如(rú)果查詢 1号用(yòng)戶的(de) 消息列表 &<÷nbsp; 在末尾增加 &nbsβ÷↓✔p; where T1.`from`= 1 &nbσ∞πsp;or T1.`to`=1 &≈↑¥nbsp;
查詢 到(dào) 1号用(yòng)戶 的(de)消息&©★列表,并增加 對(duì)方的(de) 信息
left join test_user asΩ ε↓ U on ♥ ¶; case WHEN T1.fεasongid=1 THEN T1.j©φβieshouid = U.userid ELSE↓δ÷ T1.fason₽→gid =&nbs Ωσp;U.userid END
完整代碼:
SELECT T1.id, T1.`faso↕π☆φngid`, T1.`jieshouid`, T1.neφ∏"irong, T1.shijian,U.nicheng©☆ from ( SE♣>LECT id, `f$↑♥ asongid`, `jieshouid`ε±, shijian, ne♦♥εirong, CASE ★φ WHEN (`fasongid$×✔♣` <= `jieshouid≥©§>`) THEN CONCAT(`fasongid`,ββ↔≥ '-',&nα≈α↔bsp;`jieshouid`) ELSE∏↑↔ CONCAT(`jieshouid`,&©₹nbsp;'-', `fasongid`)&nbλ≤sp; END AS ft&nbs∏×π™p;from test_liaotian) ∞→AS T1 INNER JOγ®IN ( SELECT MA←&X(shijian) AS shijian,÷₹ CASE WHEN (`fasongid` ₽ <= `jie ♦₩☆shouid`) THEN CON£ CAT(`fasongid`, ∑>&Ω9;-', `jieshouid`) ELSE₩ ♠ CONCAT(`jieshouid`, '- 39;, `fasongid`) ÷♥; END AS ft&nb¥∏β∏sp; from test_liaotian GR↑✔OUP BY ft &↓γφ★nbsp; ) AS T2 ON T1.s→<→hijian = T2.shijiaα>≠n AND T1.ft<α' = T2.ft left joi®'±✘n test_user ×₩∞€as U on case& nbsp; WHEN T1.f€£✔asongid=1 THEN  £✘±;T1.jieshouid = U.user ≤>id ELSE T1.faλ≥∞songid = U.userid&π∏ END where&"'✘nbsp; T1.`fasongid`=&n σ ↕bsp;1 or & nbsp;T1.`jieshouid`=1
注: 字段名改了(le),使用(y ∞↑♠òng)了(le) test_user表,₽α完整的(de)表設計(jì)可(kě)以找站(zhàn)長(γ∏☆€cháng)要(yào)
