我有以下数据库结构:
post_id | language | index
数据如下:
1 | en | 1
1 | en | 2
1 | en | 3
1 | fr | 1
1 | fr | 2
language
是一个短代码,如 en
、fr
等。index
是一个递增整数。数据库中至少有一种语言代码。
我需要获取每种语言
的index
最大值。
目前我获得了帖子的所有语言
SELECT DISTINCT(language) FROM my_table WHERE post_id = ?
然后迭代语言数组以获取每种语言
的最大值
SELECT MAX(index) FROM my_table WHERE post_id = ? AND language = 'language_code'
有没有一种方法可以只执行一个查询来实现这一结果?
结果应如下所示:
1 | en | 3
1 | fr | 2
最佳答案
您可以使用GROUP BY
来实现此目的。
您可以查看此链接,了解有关使用 GROUP BY
和 MAX
的更多信息:SQL MAX() with group by
SELECT post_id, language, MAX(index)
FROM my_table
GROUP BY post_id, language;
此查询的结果将是与最大索引关联的所有语言。
post_id | language | MAX(index)
1 | en | 3
1 | fr | 2
希望这有帮助!
关于mysql - SELECT 同一表中多个列值的最大索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47669361/