hello stackoverflow。
我已经在网上浏览了几个小时,现在没有成功,我说,你知道什么 - 人们通常不希望你这样做,但只是这样做。
我试图在MYSQL中实现一个事件,即每小时都会检查包含unix时间戳的任何列是否包含超过当前时间超过1个月/ 3个月/ 6个月/更久的时间戳。如果它改变了值
基本上有3列
purchase_date
是旧时间戳shop_type
是决定其1/3/6个月是否相应为1,2或3的专栏shop_status
是设置为" 2"的列。如果该时间戳早于上述要求id正在学习事件,但我认真只需要它一次,并且我确定其他用户可能会发现这个帖子很有趣
"样机代码"
Event every 1 hour
if (shop_type == "1" && (CURRENT_TIMESTAMP-purchase_date) >= 1month)
UPDATE shop_status == "2"
if (shop_type == "2" && (CURRENT_TIMESTAMP-purchase_date) >= 3months)
UPDATE shop_status == "2"
if (shop_type == "3" && (CURRENT_TIMESTAMP-purchase_date) >= 6months)
UPDATE shop_status == "2"
我知道人们讨厌像我这样的人,但有时你必须这样做,因为没有其他人会帮助你。希望你理解..事件语法有点奇怪
答案 0 :(得分:0)
从事件计划程序运行以下查询:
UPDATE shop_table
SET shop_status = "2"
WHERE (shop_type = "1" AND purchase_date <= DATE_SUB(NOW(), INTERVAL 1 MONTH))
OR (shop_type = "2" AND purchase_date <= DATE_SUB(NOW(), INTERVAL 3 MONTH))
OR (shop_type = "3" AND purchase_date <= DATE_SUB(NOW(), INTERVAL 6 MONTH))