我有类似的功能,
选择
案例
当purchase_date< =' 2017-12-31'然后(更新 report_table set year = 2017 where item_id =' ..')
何时 purchase_date< =' 2018-03-31'然后(更新report_table set year = 2018 其中item_id =' ..')其他null结束为year_purchase ...
如果在2017年12月30日购买的商品应满足这两个条件。
通过引用MySQL指南,它说它只能在then else语句中执行。如何实现多个if语句以便我的条件都执行。
我甚至尝试过if if但没有运气。
答案 0 :(得分:0)
我认为更简单的方法是将year
列直接分配给日期的年份值:
UPDATE report_table
SET year = YEAR(purchase_date)
WHERE YEAR(purchase_date) IN (2017, 2018) AND item_id = <some_value>;
但是我没有看到在表格的单独栏中单独保留年份编号的意义,因为它可以很容易地从完整日期派生,因为这意味着浪费一些空间。
答案 1 :(得分:0)
select * from(
选择
案例
当purchase_date&lt; =时 '2017-12-31'然后(选择金额)结束为purchase_amount
结合所有
选择
案例
当purchase_date&lt; ='2018-03-31'然后(选择金额)
结束为purchase_amount)
使用union all完成了这项工作。