gpt4 book ai didi

php - 如何获取mysql中条目的计数

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

________________________________
|oc_ct_forum_reply |
--------------------------------|
| forum_reply_id | forum_post_id|
|-------------------------------|
| 21 | 25 |
| 22 | 25 |
| 25 | 25 |
| 28 | 25 |
---------------------------------

我有一个名为 oc_ct_forum_reply 的表,它试图通过以下 sql 查询找到第一个 forum_reply_id:

  SELECT forum_reply_id
FROM oc_ct_forum_reply
WHERE forum_post_id = 25
ORDER BY reply_added
LIMIT 1
;

我使用另一个来获取 forum_post_id 的回复总数:

  SELECT COUNT(*) AS total
FROM oc_ct_forum_reply
WHERE forum_post_id = 25
;

我需要一个 sql 查询,它可以为我提供给定 forum_reply_id 在属于给定 forum_post_id 的已排序 forum_reply_id 中的位置。假设我提供了 forum_post_id 25 和 forum_reply_id 25,我希望查询返回 3 作为它的第 3 个条目,或者说我提供了一个 forum_post_id 为 25 和 forum_reply_id 为 28,我希望将值 4 作为其第四个条目。我已经使用上面的两个查询尝试了各种组合。

最佳答案

这应该可行

SELECT 
t1.forum_reply_id,
count(t2.forum_reply_id) as reply_number
FROM
oc_ct_forum_reply t1
JOIN oc_ct_forum_reply t2 ON ( t1.forum_reply_id >= t2.forum_reply_id AND t1.forum_post_id = t2.forum_post_id )
WHERE
t1.forum_reply_id = 25
AND t1.forum_post_id = 25
GROUP BY
t1.forum_reply_id

SQLFIDDLE

工作

  1. oc_ct_forum_reply t1 获取具有 forum_reply_id = 25 AND t1.forum_post_id = 25

  2. 的行
  3. 然后,我执行一个SELF JOIN 以获取当前 reply_id 的编号(通过获取 forum_reply_id 小于或等于当前 t1.forum_reply_id 并且具有与 t1 相同的 forum_post_id 的所有行 然后将它们分组

以上操作获取 3 行,如

t1.forum_reply_id , t2.forum_reply_id 
-----------------------------
25 , 21
25 , 22
25 , 25

最后,我只是GROUP BY t1.forum_reply_id 并使用COUNT()聚合函数以显示所请求的 forum_reply_id ( 25 )

total rows

关于php - 如何获取mysql中条目的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16110920/

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