PHP和MySQL按业力点排序
我有一个名为“posts”的MySQL表,其中有“karma”和“date”列 我想按以下顺序打印此表中的信息:首先是最近的帖子,但首先是最近的帖子,那些业力值较高的帖子 如果我按PHP和MySQL按业力点排序,mysql,Mysql,我有一个名为“posts”的MySQL表,其中有“karma”和“date”列 我想按以下顺序打印此表中的信息:首先是最近的帖子,但首先是最近的帖子,那些业力值较高的帖子 如果我按date DESC排序,然后按karma DESC排序,表格会先给我所有最近的帖子,然后按karma排序,但不必先给我那些当天更重要的帖子,因为顺序是先打印最近的帖子(按date DESC排序) 但是如果不是这样,我先按karma DESC然后按date DESC排序,PHP文件将首先打印我所有的业力点数最高的帖子,然
date DESC
排序,然后按karma DESC
排序,表格会先给我所有最近的帖子,然后按karma排序,但不必先给我那些当天更重要的帖子,因为顺序是先打印最近的帖子(按date DESC排序)
但是如果不是这样,我先按karma DESC
然后按date DESC
排序,PHP文件将首先打印我所有的业力点数最高的帖子,然后按日期排序所有业力点数较低的帖子
你能建议我如何首先打印最近那些业力最高的帖子吗
在简历中,我需要先打印出最近的、业力更高的帖子
以下是一些示例数据:
|------------|-------------|
| ID | KARMA | DATE |
|------------|-------------|
| 9 | 23 | November 23 |
|------------|-------------|
| 8 | 13 | November 23 |
|------------|-------------|
| 7 | 19 | November 23 |
|------------|-------------|
| 6 | 33 | November 22 |
|------------|-------------|
| 5 | 2 | November 22 |
|------------|-------------|
| 4 | 9 | November 21 |
|------------|-------------|
因此,帖子应按以下id顺序打印在屏幕上:
- 11月23日的第一个最佳帖子:9、7、8
- 然后是11月22日的最佳帖子:6、5
- 然后是11月21日的最佳帖子:4
- 继续
ORDER BY posts.date DESC, posts.karma DESC
但这显然会导致首先显示最近的帖子,然后是那些业力值更高的帖子
SELECT * FROM `posts` ORDER BY DATE(`date`) DESC, `karma` DESC
此查询将优先排序日期
字段,然后排序业力
字段。因此,输出将是:9,7,8,6,5,4
**Schema (MySQL v5.7)**
Create table testT (
ID int,
karma varchar(255),
table_date date
);
INSERT INTO testT (ID, karma, table_date)
VALUES ("9","23","2020.11.23"),
("8","13","2020.11.23"),
("7","19","2020.11.23"),
("6","33","2020.11.22"),
("5","2","2020.11.22"),
("4","9","2020.11.21");
---
**Query #1**
Select * FROM testT ORDER BY table_date DESC, karma DESC;
| ID | karma | table_date |
| --- | ----- | ---------- |
| 9 | 23 | 2020-11-23 |
| 7 | 19 | 2020-11-23 |
| 8 | 13 | 2020-11-23 |
| 6 | 33 | 2020-11-22 |
| 5 | 2 | 2020-11-22 |
| 4 | 9 | 2020-11-21 |
---
请用样本数据制作可重复生产的示例。或者至少向我们展示样本数据。你也可以使用这样的工具。什么定义了“最近的帖子”?“如果我按日期描述,然后按因果报应描述”这个确切的东西应该适用于你的例子。为什么你觉得自己没有得到想要的结果?看,事情是这样的:首先是最近一篇文章的业力为0,然后是下一篇文章的业力为2…所以你可能在数据库中有完整的日期和时间,但你只想按日期排序,而不是按时间。但是根据这条指令,如果一篇包含0个因果报应的帖子是在包含3个因果报应的帖子之后发布的……将首先打印包含0个因果报应的最新帖子,然后打印之前发布的包含3个因果报应的帖子……看,下面是一个关于此指令的示例:列
日期的数据类型是什么<代码>日期
,日期时间
或时间戳
?当前时间戳()然后,请用时间戳信息发布您的实际数据。这是此命令的作用: