gpt4 book ai didi

php - mysql 根据 select、基于当前行值更新多行

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

我想根据另一个名为 sessions 的表中的 count() 每小时更新一次表 visitors

我到目前为止的代码:

UPDATE visitors
INNER JOIN sessions
on visitors.visitor_ID = sessions.visitor_ID
SET visitors.last_30_day_sessions = (select count(sessions.session_ID)
where sessions.session_timestamp >= NOW() - INTERVAL 30 DAY)

它似乎正在做一些事情,但当我简单地检查访问者在过去 30 天内实际进行的 session 数时,数字并不匹配。

最佳答案

使用关联查询:

UPDATE visitors
SET last_30_day_sessions = ( SELECT count(session_ID)
FROM sessions
WHERE visitors.visitor_ID = sessions.visitor_ID
AND sessions.session_timestamp >= NOW() - INTERVAL 30 DAY
)

作为奖励,如果您想使用加入,您需要先计算总数

UPDATE visitors V
JOIN (SELECT visitor_ID, count(session_ID) session_count
FROM sessions
WHERE session_timestamp >= NOW() - INTERVAL 30 DAY
GROUP BY visitor_ID
) s
ON v.visitor_ID = s.visitor_ID
SET v.last_30_day_sessions = s.session_count

关于php - mysql 根据 select、基于当前行值更新多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51248444/

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