gpt4 book ai didi

php - 有条件地限制 mySQL 的结果数量?

转载 作者:行者123 更新时间:2023-11-29 01:45:31 24 4
gpt4 key购买 nike

这是我的查询:

SELECT * FROM Photos WHERE Event_ID IN ($eventidstring)

我知道我可以使用 LIMIT 5 限制此查询的结果总数

我需要在 $eventidstring 中限制每个值的结果数量。

所以如果 $eventidstring = 23,41,23*

*有 10 个结果,其中 Event_ID = 23,我想将此数量限制为 5。$eventidstring 中的所有其他值都相同。

最佳答案

在 MySQL 中做类似于 Oracle 的 RANK by PARITION 的事情,你可能会很高兴。

遗憾的是,此功能在 MySQL 中不可用,但您可以使用 this method 解决它。

将其转储到内联 View 中,然后选择排名 <= 5 的那些行;

因此:

SELECT t.* FROM (
SELECT (
CASE Event_id
WHEN @curEventId
THEN @curRow := @curRow + 1
ELSE @curRow := 1 AND @curEventId := Event_Id END
) AS rank,
p.*
FROM Photos p INNER JOIN (SELECT @curRow := 0, @curEventId := '') r
ORDER BY p.Event_Id DESC
) t
WHERE t.rank <= 5 ORDER BY t.Event_Id asc;

考虑一下您将如何通过 Event_Id 来“选择”前五名。您始终可以在 ORDER BY p.Event_Id DESC 之后添加更多来决定这一点。

关于php - 有条件地限制 mySQL 的结果数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7899639/

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