我觉得既然这样麻烦,不如数据表就设成每个聊友只有一条记录,例如
聊友id 聊天内容 接收id 聊天时间
1001
1002
....
9999然后当用户发送一条记录的时候,就用update语句更新
聊友id 聊天内容 接收id 聊天时间
1001
1002
....
9999然后当用户发送一条记录的时候,就用update语句更新
解决方案 »
- mysql 2个时间相差的毫秒数的问题
- 从SQL SERVICE中生成的脚本,如何导入到MySQL中,我试了好几次,都失败了啊
- 如何向mysql的datetime列插入一个数值?插入time_t值部队
- 〓〓【用group by 语句后,触发器写了出现的问题不解,100分请求帮助】〓〓
- 求一sql语句,在同一表中用一个语句取出不同类型数据
- 服务器是tomcat,连接mysql,报错为什么,详细见内
- 都说mysql不支持 存储过程,触发器。那大家在做项目的时候需要用到存储过程的地方怎么解决呢?
- 在Mysql中如何配置实现两台机器数据库《双向》同步!急!!!
- MYSQL 用SQL语句怎么修改外键名称
- delphi调用mysql存储过程的问题。
- 请问MYSQL中,MYISAM TABLE 与 InnoDB 的区别在哪里,MYISAM 能满足大型应用的需要吗?
- 初次用mysql:请问mysql支持transaction吗?
{要求只保留每个用户一条最近时间发送的记录} ??????? 保留每个 (某用户向另一用户) 所发送的最近一条记录 ??呵呵,
就你的需求,
一个语句不太好实现你可以用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