gpt4 book ai didi

MySQL:动态添加列到查询结果

转载 作者:行者123 更新时间:2023-11-29 01:14:27 40 4
gpt4 key购买 nike

我有这张表:

update_id | project_id | content | date
------------------------------------------------------
1 | 1 | text... | 2011-12-20 22:10:30
2 | 2 | text... | 2011-12-20 22:10:30
3 | 2 | text... | 2011-12-21 22:10:30
4 | 2 | text... | 2011-12-22 22:10:30
5 | 2 | text... | 2011-12-23 22:10:30

要获取我使用的特定项目的最新两个更新:

SELECT update_id, title, content, date
FROM updates
WHERE project_id = 2
ORDER BY date DESC
LIMIT 2

现在,我想在结果中动态添加一个“update_time”列,根据它是最新更新还是之前的更新,使用值“LATEST”或“PREVIOUS”,像这样:

update_time | update_id | content | date
------------------------------------------------------
LATEST | 5 | text... | 2011-12-23 22:10:30
PREVIOUS | 4 | text... | 2011-12-22 22:10:30

只有当你想知道我为什么需要这个时:MySQL: Select row by id with previous and next rows by date

最佳答案

这是一些聪明的 SQL。它为第一行选择“最新”,为所有其他行选择“上一个”(如果我们有多个)。

SELECT IF(@rownum = 0, 'LATEST', 'PREVIOUS') update_time, update_id, 
title, content, date, (@rownum := @rownum + 1) r
FROM updates, (SELECT @rownum := 0) dummy
WHERE project_id = 2
ORDER BY date DESC
LIMIT 2

它还会在结果集中添加另一列。希望这不是问题。

关于MySQL:动态添加列到查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8674692/

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