mysql - 如何获取 MySQL 中的最新值?
问题描述
如何获取每个艺术家 ID 的最新值?我想得到 ww 和 ee (id=2,3)
id title genreID countryID artistID albumID reg_count down_count createdAt
------ ------ ------- --------- -------- ------- --------- ---------- -------------------
1 qq 1 4 1 1 87 48 2020-05-05 01:00:00
2 ww 1 4 1 2 56 52 2020-05-05 03:00:00
3 ee 1 4 8 15 34 26 2020-05-05 21:00:00
4 rr 1 4 8 16 83 51 2020-05-05 05:00:00
解决方案
在 MariaDB 10.2 或更高版本中,您可以使用 aCTE
和窗口函数:
WITH CTE AS (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY artistId ORDER BY createdAt DESC) AS rn
FROM contentnew
WHERE genreID = 1 AND mainContent = 1 AND countryID = 4
)
SELECT id, title, genreID, countryID, artistID, albumID, reg_count, down_count, createdAt
FROM CTE
WHERE rn = 1
输出:
id title genreID countryID artistID albumID reg_count down_count createdAt
2 ww 1 4 1 2 56 52 2020-05-05 03:00:00
3 ee 1 4 8 15 34 26 2020-05-05 21:00:00
推荐阅读
- java - JTable 不显示列名 - 使用了 JScrollPane
- mule - Munit 测试用例获取 InterceptionException 错误
- android - 创建一个在 Wifi 热点中工作的 VOIP 应用程序
- json - 在`
': nil:NilClass (NoMethodError) 的未定义方法 `[]' - influxdb - 使用 Telegraf 和 InfluxDB 测量失败的 SMTP 登录
- php - Laravel 与工厂播种的问题
- react-native - 无法在 React-Native 中的 IOS 上添加共享标题
- c# - c# 如何从 XML 文档中获取 targetNamespace
- angular - 在 github Angular 上托管的问题
- mule - 将具有多个数组的有效负载转换为单个数组