简单更新功能MySQL

时间:2012-05-07 20:33:33

标签: mysql coldfusion

我在ColdFusion 9中编写了一个CMS,它具有基本的登录功能,可以与我正在使用的套接字服务器一起使用。最近我设置了一个“VIP”订阅w /付款,但后来我意识到,我没有SQL在2个月过后删除订阅。这是我的基本要求;如果date_purchased的时间戳值为2个月,我需要一些SQL自动执行。它需要删除vip_purchases中会话用户(仅限用户)的行,并将vip列更新为0中的users

我只需要执行会话用户名,并且仅在时间戳为2周时执行,并且仅当VIP中的值为1时才需要执行此操作。 我在思考:

update users set vip = 0 where username = session.username if vip = 1 if date_purchased = 2 months old

我意识到这不是SQL,只是试图让它更清晰。

2 个答案:

答案 0 :(得分:1)

关闭。 :)

UPDATE users
SET vip = 0
WHERE username = sessionname 
AND vip = 1 
AND date_purchased <= (today - number of days wanted)

您需要将WHEREtoday -部分)的最后一部分替换为您想要的任何时间范围条件;您的帖子令人困惑,因为它在同一上下文中提及2 weeks old2 months old

答案 1 :(得分:1)

如果您计划通过Coldfusion运行此重复任务(而不是MySQL数据库的内部任务),则应通过Coldfusion管理员设置计划任务。该任务可以每天启动一次脚本以清理所有旧帐户。

确定后,您可以创建包含该任务的.cfm或.cfc文件。

这可以是一个包含cfquery或cfstoredproc的简单文件,具体取决于您希望逻辑运行的位置。 Cfquery将在Coldfusion中运行Web服务器上的逻辑,cfstoredproc将要求数据库服务器在数据库服务器上运行MySQL逻辑。最好将其作为存储过程运行。

在这种情况下,您甚至不需要检查用户名。只需选择SELECT然后循环并更新所有vip = 1且date_purchased已过期的用户。