MySQL查询以获取最新更新页面的列表,但每个slug只能得到一个结果?
我有一个包含MySQL查询以获取最新更新页面的列表,但每个slug只能得到一个结果?,mysql,group-by,Mysql,Group By,我有一个包含slug(字符串,非唯一)和updated(日期时间)字段的页面表。我想根据updated字段检索最近更新的页面列表,但我只希望每个slug都有一个结果(因为在这种情况下slug可以跨页面重复使用)。怎么办 我试过这个: SELECT * FROM `pages` GROUP BY `slug` ORDER BY `updated` DESC 这样每个slug只会给出一个结果,但并不总是最后更新的结果。这应该适合您: SELECT * FROM pages p1 LEFT JOIN
slug
(字符串,非唯一)和updated
(日期时间)字段的页面表。我想根据updated
字段检索最近更新的页面列表,但我只希望每个slug
都有一个结果(因为在这种情况下slug可以跨页面重复使用)。怎么办
我试过这个:
SELECT * FROM `pages`
GROUP BY `slug`
ORDER BY `updated` DESC
这样每个slug只会给出一个结果,但并不总是最后更新的结果。这应该适合您:
SELECT *
FROM pages p1
LEFT JOIN pages p2 ON p1.slug = p2.slug AND p1.updated < p2.updated
WHERE p2.updated IS NULL
ORDER BY p1.updated DESC
选择*
摘自第p1页
p1.slug=p2.slug和p1.updated
请参阅。这应该适合您:
SELECT *
FROM pages p1
LEFT JOIN pages p2 ON p1.slug = p2.slug AND p1.updated < p2.updated
WHERE p2.updated IS NULL
ORDER BY p1.updated DESC
选择*
摘自第p1页
p1.slug=p2.slug和p1.updated
请参阅。这是MSSQL-但如果页面在完全相同的日期时间更新2次或更多次,则将返回“ties”
SELECT * FROM pages
WHERE Updated In
(
SELECT Max(Updated)
FROM pages
GROUP BY slug
)
这是MSSQL-但是如果一个页面在完全相同的日期时间更新了2次或更多次,则将返回“ties”
SELECT * FROM pages
WHERE Updated In
(
SELECT Max(Updated)
FROM pages
GROUP BY slug
)