我有一个聊天服务,所以:
select k.user, c.id, c.from, c.sent, c.message, c.recd from chat c
inner join cadastro k on c.from=k.id
where (`from`=? and `to`=?)
order by c.id
limit 50
我想显示最后50条消息,如果我发送1到100条,它将显示:
1
2
3
...
49
50
我想显示最后50条消息,如下所示:
50
51
...
100
如果我放order by c.id desc
,它会给我订单:
50
49
...
4
3
2
1
有什么想法吗?
select * from
(
select k.user, c.id, c.from, c.sent, c.message, c.recd from chat c
inner join cadastro k on c.from=k.id
where (`from`=? and `to`=?)
order by c.id desc
limit 50
) tmp
order by id asc
我不确定这是最有效的方法,但你可以尝试:
SELECT A.user, A.id, A.from, A.sent, A.message, A.recd
FROM (
select TOP 50 k.user, c.id, c.from, c.sent, c.message, c.recd from chat c
inner join cadastro k on c.from=k.id
where (`from`=? and `to`=?)
order by c.id DESC
) AS A
ORDER BY c.id ASC