我有一个表(输入),其中包含一些字段:
我想用这些条件触发:
例如:
谢谢
答案 0 :(得分:0)
您无法通过触发器覆盖所有要求。
你可以做什么,最好还是做什么就是动态计算status
或在WHERE
子句中使用相同的条件,如果你正在获取特定状态的行
SELECT t.*,
CASE WHEN date2 IS NULL AND
date1 >= CURDATE() - INTERVAL 1 MONTH THEN 'Unpaid'
WHEN date2 <= date1 + INTERVAL 1 MONTH THEN 'Paid'
WHEN date2 IS NULL AND
date1 < CURDATE() - INTERVAL 1 MONTH THEN 'Expired' END status
FROM input_table t
示例输出:
| CHECK_NUMBER | NAME | NOMINAL | DATE1 | DATE2 | STATUS | |--------------|------|---------|-------------------|-------------------|---------| | 1 | John | 1 | February, 16 2015 | (null) | Unpaid | | 2 | Jane | 1 | February, 03 2015 | February, 17 2015 | Paid | | 3 | Mark | 1 | January, 16 2015 | (null) | Expired |
这是 SQLFiddle 演示