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

举报
隔壁老汪 发表于 2022/06/24 00:00:43 2022/06/24
【摘要】 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, IF...
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 

文章来源: blog.csdn.net,作者:隔壁老瓦,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/wxb880114/article/details/81032028

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。