gpt4 book ai didi

MySQL:从有序结果中选择

转载 作者:行者123 更新时间:2023-11-29 03:44:06 24 4
gpt4 key购买 nike

我希望你能帮助我,这让我很头疼:D

首先,一些背景知识:

使用下表和数据:

+-------------+---------+-------------+
| host_name | service | last_change |
+-------------+---------+-------------+
| test.com | PING | 1327004398 |
| test.com | HTTP | 1327004536 |
| test.com | MYSQL | 1327004392 |
| test2.com | PING | 1327127720 |
| test2.com | HTTP | 1327004391 |
| test3.com | PING | 1327213842 |
| test4.com | PING | 1327004368 |
+-------------+---------+-------------+

我想做的是将其打印到一个表格中,其中 host_name 单元格横跨适当数量的行,有点像这样:

 +-------------+---------+-------------+
| host_name | service | last_change |
+-------------+---------+-------------+
| | PING | 1327004398 |
| test.com | HTTP | 1327004536 |
| | MYSQL | 1327004392 |
+-------------+---------+-------------+

我已经能够做到这一点,使用如下所示的查询:

SELECT
host_name,
group_concat(service SEPARATOR '|') as service,
group_concat(last_change SEPARATOR '|') as last_change,

FROM table

GROUP BY host_name

然后通过进行一些操作(在发现管道的地方爆炸结果)。

我遇到的问题:

我想做同样的事情,但根据 last_change 对结果进行排序。我尝试执行以下操作:

SELECT
host_name,
group_concat(service SEPARATOR '|') as service,
group_concat(last_change SEPARATOR '|') as last_change,

FROM
(
SELECT * FROM table ORDER BY last_change DESC
) as tmp_table

GROUP BY host_name

但是好像不行。将 DESC 更改为 ASC 甚至不会改变我得到的结果。

如果我运行自己对结果进行排序的子查询,我会得到预期的结果,除了结果没有按 host_name 分组(显然因为它缺少 group_concat 和 group by 语句)。

有什么想法吗?

非常感谢。

最佳答案

我不明白你在这里想做什么。您想要组内的结果排序还是整个结果集?在第一种情况下试试这个:

SELECT
host_name,
group_concat(service ORDER BY last_change DESC SEPARATOR '|') as service,
group_concat(last_change ORDER BY last_change DESC SEPARATOR '|') as last_change
FROM table
GROUP BY host_name

这是第二个:

SELECT
host_name,
group_concat(service SEPARATOR '|') as service,
group_concat(last_change SEPARATOR '|') as last_change
FROM table
GROUP BY host_name
ORDER BY table.last_change

关于MySQL:从有序结果中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8964313/

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