不是吧,这个要求好奇怪呀, {要求只保留每个用户一条最近时间发送的记录} ??????? 保留每个 (某用户向另一用户) 所发送的最近一条记录 ??呵呵, 就你的需求, 一个语句不太好实现你可以用A:SELECT COUNT(*) FROM tA WHERE id = 1001 得出某用户总记录数 然后用 DELETE FROM tA WHERE id = 1001 ORDER BY 聊天时间 LIMIT 总记录数 - 1B: 用临时表来实现
shuixin13(犬犬(心帆)) ,呵呵。奇怪吧。同意shuixin13(犬犬(心帆)) 的。其实可以不删啊,要用的时候读出最新的一条记录就是了啊。用max和group的不同优先级.SELECT SUBSTRING(CONCAT(聊天时间,聊友id), 19) AS 聊友id, SUBSTRING(CONCAT(聊天时间,聊天内容), 19) AS 聊天内容, SUBSTRING(CONCAT(聊天时间,接收id), 19) AS 接收id, 聊天时间 FROM 记录表 GROUP BY 聊友id ORDER BY 聊天时间. 大概是这样.具体你自己看看. 这个帖子也许有帮助. http://expert.csdn.net/Expert/topic/2270/2270426.xml?temp=.4643366
有这么处理聊天记录的么??? 见的少啊!这样也好说: 收到消息后,加一条,删一条不就得了。 INSERT INTO tA() VALUES('',''','','' ).....................SELECT COUNT(*) FROM tA WHERE id = 1001DELETE FROM tA WHERE id = 1001 ORDER BY 聊天时间 LIMIT 总记录数 - 1
select sendid, max(time), substring(max(concat(time,receiveid)), 20) as receiveid, substring(max(concat(time,content)),20) as content from msgrecord group by sendidwhite的,给他结不成,他没在csdn回复我.
{要求只保留每个用户一条最近时间发送的记录} ??????? 保留每个 (某用户向另一用户) 所发送的最近一条记录 ??呵呵,
就你的需求,
一个语句不太好实现你可以用A:SELECT COUNT(*) FROM tA WHERE id = 1001
得出某用户总记录数
然后用
DELETE FROM tA WHERE id = 1001 ORDER BY 聊天时间 LIMIT 总记录数 - 1B:
用临时表来实现
SUBSTRING(CONCAT(聊天时间,聊天内容), 19) AS 聊天内容,
SUBSTRING(CONCAT(聊天时间,接收id), 19) AS 接收id,
聊天时间
FROM 记录表
GROUP BY 聊友id ORDER BY 聊天时间.
大概是这样.具体你自己看看.
这个帖子也许有帮助.
http://expert.csdn.net/Expert/topic/2270/2270426.xml?temp=.4643366
见的少啊!这样也好说:
收到消息后,加一条,删一条不就得了。
INSERT INTO tA() VALUES('',''','','' ).....................SELECT COUNT(*) FROM tA WHERE id = 1001DELETE FROM tA WHERE id = 1001 ORDER BY 聊天时间 LIMIT 总记录数 - 1