Mysql 使用条件sql生成的列
mysql命令,根据条件从其他列生成一列Mysql 使用条件sql生成的列,mysql,sql,Mysql,Sql,mysql命令,根据条件从其他列生成一列 loan_amount | installment | start_date | status ------------------------------------------------------------------ 500 | 100 | 2018-1-1 | 如果(贷款金额%分期付款!=0),则需要支付的月份=贷款金额/分期付款+1 所需的其他月份=贷款金额/分期付款 然后我想通过
loan_amount | installment | start_date | status
------------------------------------------------------------------
500 | 100 | 2018-1-1 |
如果(贷款金额%分期付款!=0),则需要支付的月份=贷款金额/分期付款+1
所需的其他月份=贷款金额/分期付款
然后我想通过添加开始日期所需的月份来检查它是否已超过当前日期。如果不是,则状态将生成“未完成”或“已完成”
分隔符//
设置@month=“0”;
在插入“贷款”之前创建触发器“状态检查”
每行
开始
如果是新的。贷款金额%NEW.分期付款!=0
然后设置@month NEW.loan\u amount/NEW.分期付款+1;
else设置@month=NEW.loan\u amount/NEW.分期付款;
如果结束;
如果NOW()我不能给出真正的答案,因为您没有提供所有的数据库字段或数据样本,但是在插入之前的和更新之前的触发器可能会完成这项工作
这是插入前的基础:
DELIMITER //
DROP TRIGGER IF EXISTS `trg_test_insert`;
//
CREATE TRIGGER `trg_test_insert`
BEFORE INSERT ON `table`
FOR EACH ROW
BEGIN
IF NEW.loan_amount % NEW.installment != 0 THEN
SET NEW.month_required = NEW.loan_amount / NEW.installment + 1;
ELSE
SET NEW.month_required = NEW.loan_amount / NEW.installment;
END IF;
END;
//
DELIMITER ;
看看
及
请参见是否要手动运行一次;更改插入查询以处理您的案例;或者在每次更新/插入时为您计算一些内容?是的,我想要一些可以计算并根据结果将“完成”或“不完整”置于状态的内容。我试着用“alter table add status varchar as(if(dateadd(month,month\u required,start\u date)>currentdate(),“complete”,“uncomplete”)…我不知道这种东西是如何工作的。。。
DELIMITER //
DROP TRIGGER IF EXISTS `trg_test_insert`;
//
CREATE TRIGGER `trg_test_insert`
BEFORE INSERT ON `table`
FOR EACH ROW
BEGIN
IF NEW.loan_amount % NEW.installment != 0 THEN
SET NEW.month_required = NEW.loan_amount / NEW.installment + 1;
ELSE
SET NEW.month_required = NEW.loan_amount / NEW.installment;
END IF;
END;
//
DELIMITER ;