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,
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)