gpt4 book ai didi

php - 如何使用mysql选择多个最大值

转载 作者:行者123 更新时间:2023-11-29 13:09:35 24 4
gpt4 key购买 nike

我有一个像这样的收件人

Id    user_id   thread_id
_________________________
1 1215 3833
2 1215 3833
3 1862 3833
........................

10 1215 3834
11 1862 3834

我有一个包含一些值(user_id)的数组。对于每个值,即我的 user_id-s,我想选择最大的 thread_id。对于单个给定值(例如 1215),我可以通过这个简单的查询获取该值

query = "SELECT MAX(thread_id) FROM recipients WHERE user_id = 1215 "

但是当我尝试编写这样的内容时,我无法使用它从表中获取所有最大 thread_id-s

query = "SELECT MAX(thread_id) FROM recipients WHERE user_id IN (1215,1862,1799)"

我想知道是否可以通过单个查询获取给定数组的所有最大值(无需使用 for 或 foreach 并对数组的每个值运行查询)。谢谢!

最佳答案

您需要使用聚合函数来使用GROUP BY,您应该将它们分组,对于第一个查询,有一个用户的where子句,因此它将为您提供最大线程ID,但在第二个查询中您有3 个用户 ID,因此您需要将它们分组以获得每个用户 3 个最大线程 ID

SELECT MAX(thread_id) 
FROM recipients
WHERE user_id IN (1215,1862,1799)
GROUP BY user_id

fiddle demo

GROUP BY (Aggregate) Functions

关于php - 如何使用mysql选择多个最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22274278/

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