gpt4 book ai didi

Mysql 错误 1064 使用 SQLVars

转载 作者:行者123 更新时间:2023-11-29 18:27:17 25 4
gpt4 key购买 nike

阅读此帖子后:MySQL - Subtracting value from previous row, group by

我使用了最受支持的答案中描述的方法并编写了以下代码:

SELECT 
T.id_str,
T.created_at,
T.retweet_count,
T.tweeted_at,
if (@lastid_str = T.id_str, T.retweet_count - @lastretweet_count, 0000.00) as RetweetChange,
@lastid_str := T.id_str,
@lastretweet_count := T.retweet_count
FROM
Tweets T,
(SELECT @lastid_str := 0,
@lastretweet_count :=0 ) SQLVars
ORDER BY
T.tweeted_at DESC,
T.id_str;

老问题解决了,新问题:如何编写触发器。

enter image description here

我的 table 是这样的。其中 id_str 是特定推文的唯一标识符。由于我每分钟插入单个用户的 50 条推文,因此会有许多相同的 id_str。我想看的是每分钟retweet_count的变化。 tweeted_at 是用户发推文的时间,created_at 是该数据插入我的数据库的时间。我想为插入数据库的每个新数据生成 retweet_change ,与相同的旧推文(插入 retweet_change 列)相比。触发器应该怎么写?

最佳答案

特别是在基于网络的解决方案中,计数器和聚合很常见,并且数据有些静态(即:旧数据未更改、被删除等)并且可以添加新数据,触发器可以提供帮助。

您可以在需要这些聚合的适当位置添加一些列。然后,当一条新记录添加到一个表中时,汇总表(或父 ID,例如转发)可以再更新 1 个记录,或者更新总和(如果有其他记录,例如财务、订单数量等)。这将简化您的计数因为添加条目时总计将始终运行。

一旦触发器到位,您只需通过预先聚合和更新相关记录来准备计数,然后其余部分继续保持同步。

关于Mysql 错误 1064 使用 SQLVars,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46064273/

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