gpt4 book ai didi

mysql - 在 mysql 中的 in 语句中计数

转载 作者:行者123 更新时间:2023-11-29 02:24:26 25 4
gpt4 key购买 nike

我有一个类似的查询。

SELECT t.* FROM
(SELECT
`user_bookmarks`.`id` AS `user_bookmark_id`,
`bookmark_id`,
`user_bookmarks`.`user_id`,
`bookmark_url`,
`bookmark_website`,
`bookmark_title`,
`bookmark_preview_image`,
`bookmark_popularity`,
`category_id`,
`category_name`,
`pdf_txt_flag`,
`youtube_video`,
`content_preview`,
`snapshot_preview_image`,
`mode` ,
@r:= CASE WHEN category_id = @g THEN @r+1 ELSE @r:=1 END `rank` ,
@g:=category_id
FROM
`user_bookmarks`
LEFT JOIN `bookmarks`
ON `user_bookmarks`.`bookmark_id` = `bookmarks`.`id`
LEFT JOIN `categories`
ON `user_bookmarks`.`category_id` = `categories`.`id`
JOIN (SELECT @r:=0,@g:=0) t1
WHERE `category_id` IN (164, 170, 172)
ORDER BY category_id
) t
WHERE t.rank <=6

引用这个答案。 This is link

我们可以计算上述查询中每个 Category_id 的结果总数吗?我们可以在 mysql 本身中完成吗?

谢谢。

最佳答案

你可以用一些技巧来做到这一点:

select t.*
from (select t.*,
@r := (CASE WHEN category_id = @g THEN @r ELSE rank END) as maxrank,
@g := category_id
from (<inner query here>) t
order by category_id, t.rank desc
) t
where t.rank <= 6;

想法是按降序对数据重新排序,然后复制每个类别的行的排名。

关于mysql - 在 mysql 中的 in 语句中计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25374509/

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