0
点赞
收藏
分享

微信扫一扫

Mysql数据迁移数据导入导出sql

INSERT into wkp_order (create_time,update_time,channel,expire_time,order_no,pay_time,payment_mode,status,buyer_user_id,source) 
select
create_ts,
update_ts,
channel,
IFNULL(expire_time,'2099-12-31 23:59:59') expire_time,
-- is_told
order_id,
order_time,
CASE
WHEN pay_type = 'alipay' THEN 1
WHEN pay_type = 'wechat' THEN 6
WHEN pay_type = 'phone' THEN 7
END pay_type,
CASE
WHEN state = 0 THEN 0
WHEN state = 1 THEN 0
WHEN state = 2 THEN (CASE WHEN unsubscribe = 1 THEN 9 ELSE 1 END)
WHEN state = 3 THEN 8
END status ,
user_id,
'1' source
from course_order

知识点

1、insert into select from

     iNSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。目标表中任何已存在的行都不会受影响。

       insert into select 指定字段

        insert into tb1 ( key1,key2,key3) select key1,key2,key3 from tb2

2、IFNULL使用

     

IFNULL(expire_time,'2099-12-31 23:59:59') expire_time

     IFNULL( exp1,exp2) 若果 exp1 存在则使用exp1 ,不存在使用exp2, 同样也可以使用 case when exp1 is null then exp2

    这样没有IFNULL的效率高 

3、CASE及CASE嵌套

格式如下:

case
when condition then result
when condition then result
when condition then result
else result
end new_column_name

嵌套使用保持 condition 中的case 格式完整性,样例如下:

CASE
WHEN state = 0 THEN 0
WHEN state = 1 THEN 0
WHEN state = 2 THEN (CASE WHEN unsubscribe = 1 THEN 9 ELSE 1 END)
WHEN state = 3 THEN 8
END status


举报

相关推荐

0 条评论