gpt4 book ai didi

php - 从 MySQL 中仅最新创建的数据集记录中选择所有字段?

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

我正在做一个评论表,但我不太明白这个查询。这些评论会在这个应用中的一个特定的数据记录下,也就是comment_number所指的。创建评论时,会分配记录“评论编号”。评论编号 + date_added 标识每个特定评论。如果评论被更新/编辑,而不是更新记录本身,它会在表中创建另一个具有相同 comment_number 和 date_added 的条目,并创建一个新的 date_modified。这是由于合规性问题。我必须能够回到那个特定评论的历史。

这是表的描述:

+----------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------- +---------------+------+-----+---------+-------+
| comment_number | varchar(64) | YES | | NULL | |
| comment | varchar(2048) | YES | | NULL | |
| date_added | datetime | YES | | NULL | |
| date_modified | datetime | YES | | NULL | |
| is_deleted | tinyint(1) | YES | | NULL | |
| date_deleted | datetime | YES | | NULL | |
+--------------- +---------------+------+-----+---------+-------+

因此不同的评论将具有相同的评论编号,但会有不同的“添加日期”字段。并且特定评论在历史上的不同版本将具有相同的 'comment_number' 和 'date_added' 值,但不同的 'date_modified' 字段。

所以我需要拉取所有评论的最新修改版本的所有字段。我一直在玩弄 MAX() 函数以及 GROUP BY,但我还没有得到正确的结果。

如有任何帮助,我们将不胜感激。

最佳答案

要获取每条评论的最新修改日期,您需要这样的查询:

SELECT
comment_number,
date_added,
MAX(date_edited) AS max_date_edited
FROM
tablename
GROUP BY
comment_number,
date_added

要获取最新版本的评论,您需要将此查询的结果返回:

SELECT c.*
FROM
table_name c INNER JOIN (
SELECT
comment_number,
date_added,
MAX(date_edited) AS max_date_edited
FROM
tablename
GROUP BY
comment_number,
date_added
) m ON c.comment_number=m.comment_number
AND c.date_edited = m.max_date_edited

关于php - 从 MySQL 中仅最新创建的数据集记录中选择所有字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28729839/

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