gpt4 book ai didi

SQL 查询,每组选择 5 个最近的

转载 作者:可可西里 更新时间:2023-11-01 06:36:20 27 4
gpt4 key购买 nike

我有这张 table

CREATE TABLE `codes` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`language_id` int(11) unsigned NOT NULL,
`title` varchar(60) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`time_posted` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8

language_id 是指记录使用的语言。我想做的是检索 每种 language_id 的五个最近(ORDER BY time_posted DESC LIMIT 5)记录的列表。我可以在 PHP 中使用许多不同的 SQL 查询在一个循环中执行此操作,但我觉得有一种更简单的方法。

我必须得到一本关于 SQL 的书,哈哈。

谢谢。

最佳答案

下面是我如何在 MySQL 中解决这种“每组前 N 个”类型的查询:

SELECT c1.*
FROM codes c1
LEFT OUTER JOIN codes c2
ON (c1.language_id = c2.language_id AND c1.time_posted < c2.time_posted)
GROUP BY c1.id
HAVING COUNT(*) < 5;

另请参阅“How do I select multiple items from each group in a mysql query?

关于SQL 查询,每组选择 5 个最近的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1353099/

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