gpt4 book ai didi

MySQL 下一行 ORDER BY 多列 JOIN 表 2

转载 作者:太空宇宙 更新时间:2023-11-03 12:35:19 24 4
gpt4 key购买 nike

我需要帮助限制此查询的结果集。

SELECT tt.id
FROM kf_topics AS tt
LEFT JOIN kf_posts AS pp
ON tt.id = pp.topicid
WHERE tt.boardid = 1
GROUP BY tt.id
ORDER BY tt.sticky DESC, pp.time DESC

Current 返回下面的数组。

enter image description here

但是,我需要在列表中找到具有我指定的 ID 的行之后的行,请记住,这些将根据 ORDER BY tt.sticky DESC、pp.time DESC 更改订单。此外,行永远不会以完美的 ID 顺序排列,因此将其基于 ID 字段是不可能的。

因此,例如,如果我想查找 ID = 24 之后的下一行,则查询结果将是 ID => 23

最佳答案

我们可以使用如下的单个查询来做到这一点

SELECT ttid
FROM
(SELECT tt.id ttid,@row:=@row+1 rownum,IF(tt.id=24,@j:=@row,0)
FROM kf_topics AS tt
LEFT JOIN kf_posts AS pp
ON tt.id = pp.topicid JOIN (SELECT @row:=0) AS rowcount
WHERE tt.boardid = 1
GROUP BY tt.id
ORDER BY tt.sticky DESC, pp.time DESC) A JOIN (SELECT @j+1 as rownum) B ON (A.rownum=B.rownum);

我不确定你为什么要使用 group by,但它应该在任何情况下都有效。

关于MySQL 下一行 ORDER BY 多列 JOIN 表 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13505927/

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