gpt4 book ai didi

MySQL - 仅选择最后修改的(或 NULL 值)

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

我有一个具有以下结构的 MySQL 数据库表:

+----+---------+---------+---------------------+
| id | item_id | name | modified |
+----+---------+---------+---------------------+
| 1 | 1829 | Item 1 | 2013-10-20 20:42:34 |
| 2 | 1737 | Item 2 | 2013-10-25 12:33:01 |
| 3 | 1829 | Item 3 | 2013-10-22 18:47:22 |
| 4 | 1737 | Item 2b | 2013-10-29 21:12:29 |
| 6 | 1829 | Item 3b | NULL |
+----+---------+---------+---------------------+

我想做的是,在一个单独的查询中,获取所有项目,但如果重复,则仅获取那些较新的(修改的字段较新)或其修改的字段为NULL。

所以,我从这张表中得到的是:

+----+---------+---------+---------------------+
| id | item_id | name | modified |
+----+---------+---------+---------------------+
| 1 | 1829 | Item 1 | 2013-10-20 20:42:34 |
| 4 | 1737 | Item 2b | 2013-10-29 21:12:29 |
| 6 | 1829 | Item 3b | NULL |
+----+---------+---------+---------------------+

我可以通过第二次选择来做到这一点,例如:

SELECT db_items.item_id, db_items.name, db_items.modified  
FROM (SELECT item_id, name, modified
FROM db_items
ORDER BY modified DESC) db_items
GROUP BY item_id

但我想知道是否可以在没有内部 SELECTS 的情况下进行(因为这只是一个示例,我会在更复杂的查询中使用它)。

感谢您的时间和回答!

最佳答案

尝试一下

SELECT *
FROM db_items
GROUP BY item_id
ORDER BY modified DESC

关于MySQL - 仅选择最后修改的(或 NULL 值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19786951/

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