首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MySQL中的更新内添加If语句

问在MySQL中的更新内添加If语句
EN

Stack Overflow用户
提问于 2019-04-05 01:39:41
回答 1查看 20关注 0票数 0

我是MySQL的新手,周一我有一个项目要交。我在尝试添加查询/触发器以执行以下操作时遇到问题:

我的项目breif说明“当客户注册时,他们将获得30天的免费试用客户服务,之后他们支付”,所以我正在尝试(失败)添加一些东西,将检查帐户是否已经注册了30天,如果已经注册,帐户类型将更改为“付费订阅”,如果没有,它将保持为“免费路径”。

我可以让它单独工作,但不能一起工作。

下面是我的表格:

代码语言:javascript
复制
 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';

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2019-04-05 03:09:58

根据您的要求,您可以这样做(针对IF的语法)

代码语言:javascript
复制
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字段:

  • 用户注册=> account_type = "free",available_until = NOW() + 30d

如果用户在30天内付款。付款后,设置account_type =“已支付”,available_until ={您想要的时间}

您现在只需要检查帐户available_until是否在当天之后,并且您并不真正关心帐户的类型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55521994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档