gpt4 book ai didi

php - 此查询的替代方案

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

我想获取数据库中过去一天、一周或一个月浏览次数最多的所有文章。

这就是我使用这些查询的原因(我使用第一个查询的结果来创建最后一个查询)

SELECT guid
FROM tracking
WHERE date > UNIX_TIMESTAMP(NOW() - INTERVAL 1 MONTH)
GROUP BY guid
ORDER BY count(guid) DESC limit 1,10

SELECT *
FROM `items`
WHERE `id` IN('66', '37', '42', '50', '55', '38', '41', '65', '71', '44') AND `type` = 'ddl'
ORDER BY FIELD(id, 66, 37, 42, 50, 55, 38, 41, 65, 71, 44)

是否有其他方法可以非常快速地获得相同的结果?目前,跟踪表只有 45 条记录,商品表只有 36 条记录,响应时间为 0.4530ms。

解释

enter image description here

最佳答案

假设您想根据第二个查询中的计数保持顺序,则可以使用 JOIN 将两者组合起来,如下所示:

SELECT 
a.*
FROM
`items` a
INNER JOIN
(SELECT
guid, COUNT(guid) cnt
FROM
tracking
WHERE
date > UNIX_TIMESTAMP(NOW() - INTERVAL 1 MONTH)
GROUP BY guid
ORDER BY COUNT(guid) DESC
LIMIT 1 , 10) b ON a.`id` = b.guid
WHERE
a.`type` = 'ddl'
ORDER BY b.cnt DESC;

关于php - 此查询的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41920417/

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