我是MySQL的新手,周一我有一个项目要交。我在尝试添加查询/触发器以执行以下操作时遇到问题:
我的项目breif说明“当客户注册时,他们将获得30天的免费试用客户服务,之后他们支付”,所以我正在尝试(失败)添加一些东西,将检查帐户是否已经注册了30天,如果已经注册,帐户类型将更改为“付费订阅”,如果没有,它将保持为“免费路径”。
我可以让它单独工作,但不能一起工作。
下面是我的表格:
customer_id varchar (100) NOT NULL,
first_name varchar (20) not null,
last_name varchar (20) not null,
phone_no varchar (20) not null,
email_address varchar (20) not null,
address varchar (100) not null,
city varchar (20) not null,
country varchar (20) not null,
date_of_registration date,
account_type varchar (20) not null,
PRIMARY KEY (customer_id)
) DATA DIRECTORY='c:/mamp';谢谢!
发布于 2019-04-05 03:09:58
根据您的要求,您可以这样做(针对IF的语法)
SELECT
first_name, last_name, email_address,
IF(NOW() > date_of_registration + INTERVAL 30 DAY, 'paid', 'free') as status
FROM users WHERE id = XX当然,选择您想要的字段,并根据需要修改WHERE子句。您将拥有一个状态值,其中将包含“已支付”或“免费”。
!!!但是!从逻辑的角度来看,这可能不是您想要的。实际上,如果账户超过30天,前面的查询将返回“已支付”。之后,您必须在处理过程中检查account_type。
我建议您添加一个available_until字段:
如果用户在30天内付款。付款后,设置account_type =“已支付”,available_until ={您想要的时间}
您现在只需要检查帐户available_until是否在当天之后,并且您并不真正关心帐户的类型。
https://stackoverflow.com/questions/55521994
复制相似问题