gpt4 book ai didi

mysql - 从 sql 数据库中选择不同语言的条目的最新版本

转载 作者:搜寻专家 更新时间:2023-10-30 20:06:24 24 4
gpt4 key购买 nike

有没有办法在一个 sql 查询中做到这一点?我想获得每种可用语言的同一条目的最新(版本)。

我的表和示例数据是:

ID  |  Index  |  Version  |  Language  | ...
------------------------------------------------
1 1 1 1 test1
2 1 2 1 test2
3 2 1 1 test3
4 2 1 2 test4
5 2 1 3 test5
6 2 2 3 test6
7 3 1 1 test7
8 3 1 2 test8
  • ID是唯一标识
  • 索引对于数据库中的任何条目都是唯一的,这意味着同一文章/条目的所有时间版本和语言版本共享相同的索引。
  • 版本显然是版本号。 1 是第一个版本,数字越大通常越新。
  • Language 是条目/文章的语言版本号。

我真的想不出在一个查询中得到这个的方法。但也许这是可行的?

我想得到这样的东西:

ID  |  Index  |  Version  |  Language  | ...
------------------------------------------------
2 1 2 1 test2
3 2 1 1 test3
4 2 1 2 test4
6 2 2 3 test6
7 3 1 1 test7
8 3 1 2 test8

test1出局了,因为test2是同一种语言,而且比较新
test5 已经出来了,因为 test6 是同一种语言的新版本

已解决

SELECT T1.* FROM entry_view T1 
LEFT JOIN entry_view T2 ON (T1.version < T2.version AND T1.id_language = T2.id_language AND T1.`index` = T2.`index`)
WHERE T2.ID IS NULL

最佳答案

    SELECT T1.ID, T1.Index, T1.Version, T1.Language FROM Table T1 
LEFT JOIN Table T2 ON (T1.ID < T2.ID AND T1.Language = T2.Language)
WHERE T2.ID IS NULL

编辑:我假设 ID 正在增加,最新的将是最后一个。

也许试试这个:

SELECT T1.ID, T1.Index, T1.Version, T1.Language FROM Table T1 
LEFT JOIN Table T2 ON (T1.Version < T2.Version AND T1.Language = T2.Language)
WHERE T2.ID IS NULL

关于mysql - 从 sql 数据库中选择不同语言的条目的最新版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5098912/

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