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

Jon*_*han 2 mysql

我有这张桌子:

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 
Run Code Online (Sandbox Code Playgroud)

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

SELECT update_id, title, content, date
FROM updates
WHERE project_id = 2
ORDER BY date DESC
LIMIT 2
Run Code Online (Sandbox Code Playgroud)

现在,我想动态地向结果中添加一个'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 
Run Code Online (Sandbox Code Playgroud)

只有当你想知道为什么我需要这个时:MySQL:按ID排序,按日期排序前一行和下一行

Ser*_*sev 6

这是一些聪明的SQL.它为第一行选择'LATEST',为所有其他选择'PREVIOUS'(我们应该有多个).

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
Run Code Online (Sandbox Code Playgroud)

它还为结果集添加了另一列.希望这不是问题.