gpt4 book ai didi

php - SQL 输出中的单独月份

转载 作者:行者123 更新时间:2023-11-29 01:49:13 25 4
gpt4 key购买 nike

我有这个 SQL 语句:

SELECT id, name, date FROM money_month WHERE user_id = '{$_SESSION['id']}';

它返回我这样的行:

| id | name   | date       |
|----|--------|------------|
| 1 | Mike | 2018-09-05 |
| 2 | Nelson | 2018-09-07 |
| 3 | Bity | 2018-09-08 |
| 4 | Ory | 2018-10-04 |

如果我使用这样的分组方式:

SELECT id, name, date FROM money_month WHERE user_id = '{$_SESSION['id']}' GROUP BY YEAR(date), MONTH(date) ORDER BY date DESC;

它有效,但只显示每个月的第一行,如下所示:

| id        | name | date       |
|-----------|------|------------|
| September | | |
| 1 | Mike | 2018-09-05 |
| October | | |
| 4 | Ory | 2018-10-04 |

是否可以用月份分隔行,看起来像这样?

| id        | name   | date       |
|-----------|--------|------------|
| September | | |
| 1 | Mike | 2018-09-05 |
| 2 | Nelson | 2018-09-07 |
| 3 | Bity | 2018-09-08 |
| October | | |
| 4 | Ory | 2018-10-04 |

我的 SQL 输出

$month = '';
while($row = $result->fetch_assoc()) {


if($month != $row["date"])
{
$month = substr($row["date"],5,2);
if ($month == "10") { $output= "October"; }
if ($month == "9") { $output= "September"; }

echo $output;
}

尝试实现这样的目标: enter image description here

但我的输出看起来像这样:enter image description here

最佳答案

如果我理解正确的话,你只需要按日期排序

SELECT YEAR(date) desc, MONTH(date),  id, name, date 
FROM money_month
WHERE user_id = '{$_SESSION['id']}'
Order BY 1 desc, 2 desc

当你使用Group by时,你应该aggregate不在 group by 子句中的列

关于php - SQL 输出中的单独月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52635205/

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