gpt4 book ai didi

mysql - 如何按 id 升序选择最后 5 行顺序 - CakePHP

转载 作者:行者123 更新时间:2023-11-29 04:19:55 28 4
gpt4 key购买 nike

我想按升序获取最后 5 条记录的顺序。

我有一个表名 chat_public_msgs 我已经插入了 6 个示例数据。我需要按 id asc 排序的最后 5 条记录。请检查以下内容。

chat_public_msgs -

id  username  message  created
1 smith hi 2014-12-14 10:14:15
2 piter hello 2014-12-14 10:14:20
3 john hi smith 2014-12-14 10:14:28
4 raj aaa 2014-12-14 10:15:22
5 chinu test 2014-12-14 10:15:25
6 piter bbbbb 2014-12-14 10:15:40

查询 -

$fields = array('ChatPublicMsg.message','ChatPublicMsg.created','ChatPublicMsg.username');
$results = $this->ChatPublicMsg->find('all',array(
'fields'=>$fields,
'limit'=>5,
'order'=>array('ChatPublicMsg.id ASC')));

输出-

id  username  message  created
1 smith hi 2014-12-14 10:14:15
2 piter hello 2014-12-14 10:14:20
3 john hi smith 2014-12-14 10:14:28
4 raj aaa 2014-12-14 10:15:22
5 chinu test 2014-12-14 10:15:25

但是我想要这个-

id  username  message  created  
2 piter hello 2014-12-14 10:14:20
3 john hi smith 2014-12-14 10:14:28
4 raj aaa 2014-12-14 10:15:22
5 chinu test 2014-12-14 10:15:25
6 piter bbbbb 2014-12-14 10:15:40

编辑 -

我从 Select last 20 order by ascending - PHP/MySQL 得到了这个查询

select * from (
select * from chat_public_msgs order by id desc limit 5
) tmp order by tmp.id asc

如何以 CakePhp 格式编写上述查询?

最佳答案

您可以通过按 'id' DESC 对结果进行排序并将记录数限制为 5 来执行此操作。然后使用 array_reverse() 反转排序。

$fields = array('ChatPublicMsg.message','ChatPublicMsg.created','ChatPublicMsg.username');
$results = $this->ChatPublicMsg->find('all',array(
'fields'=>$fields,
'limit'=>5,
'order'=>array('ChatPublicMsg.id DESC')));
$reverse = array_reverse($results['ChatPublicMsg']);
$results['ChatPublicMsg'] = $reverse;

这假设“id”随着每条记录递增。否则需要在表中添加时间戳字段,并使用该字段进行排序。

关于mysql - 如何按 id 升序选择最后 5 行顺序 - CakePHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27469181/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com