使用MySQL划分收货地址后将数据添加到原表中

使用MySQL划分收货地址后,将数据添加到原表中公分三步:

1、创建临时表

2、确认原表中是否有所对应的列(省、市)

3、执行更新操作

4、清理临时表

sql 复制代码
# 创建临时表
CREATE TABLE temp_address AS
SELECT 
    distinct `收货地址`,
    CASE 
        WHEN 收货地址 LIKE '北京市%' THEN '北京市'
        WHEN 收货地址 LIKE '天津市%' THEN '天津市'
        WHEN 收货地址 LIKE '重庆市%' THEN '重庆市'
        WHEN 收货地址 LIKE '上海市%' THEN '上海市'
        WHEN 收货地址 LIKE '宁夏回族自治区%' THEN '宁夏回族自治区'
        WHEN 收货地址 LIKE '内蒙古自治区%' THEN '内蒙古自治区'
        WHEN 收货地址 LIKE '广西壮族自治区%' THEN '广西壮族自治区'
        WHEN 收货地址 LIKE '西藏自治区%' THEN '西藏自治区'
        WHEN 收货地址 LIKE '新疆维吾尔自治区%' THEN '新疆维吾尔自治区'
        ELSE SUBSTRING_INDEX(收货地址, '省', 1)
    END AS `省`,
    CASE 
        WHEN 收货地址 LIKE '北京市%' THEN SUBSTRING_INDEX(SUBSTRING_INDEX(收货地址, '市', 1), '省', -1)
        WHEN 收货地址 LIKE '天津市%' THEN SUBSTRING_INDEX(SUBSTRING_INDEX(收货地址, '市', 1), '省', -1)
        WHEN 收货地址 LIKE '重庆市%' THEN SUBSTRING_INDEX(SUBSTRING_INDEX(收货地址, '市', 1), '省', -1)
        WHEN 收货地址 LIKE '上海市%' THEN SUBSTRING_INDEX(SUBSTRING_INDEX(收货地址, '市', 1), '省', -1)
        WHEN 收货地址 LIKE '内蒙古自治区%' THEN SUBSTRING_INDEX(SUBSTRING_INDEX(收货地址, '市', 1), '省', -1)
        WHEN 收货地址 LIKE '广西壮族自治区%' THEN SUBSTRING_INDEX(SUBSTRING_INDEX(收货地址, '市', 1), '省', -1)
        WHEN 收货地址 LIKE '西藏自治区%' THEN SUBSTRING_INDEX(SUBSTRING_INDEX(收货地址, '市', 1), '省', -1)
        WHEN 收货地址 LIKE '新疆维吾尔自治区%' THEN SUBSTRING_INDEX(SUBSTRING_INDEX(收货地址, '市', 1), '省', -1)
        ELSE SUBSTRING_INDEX(SUBSTRING_INDEX(收货地址, '市', 1), '省', -1)
    END AS `市`
FROM 
    all_user_tb
sql 复制代码
# 新增列

ALTER TABLE all_user_tb ADD COLUMN 省 VARCHAR(255);
ALTER TABLE all_user_tb ADD COLUMN 市 VARCHAR(255);
sql 复制代码
# 更新原表
UPDATE all_user_tb AS a
JOIN temp_address AS t ON a.收货地址 = t.收货地址
SET a.省 = t.省, a.市 = t.市;
sql 复制代码
# 删除临时表
DROP TABLE temp_address;
相关推荐
兩尛1 小时前
订单状态定时处理、来单提醒和客户催单(day10)
java·前端·数据库
web2u1 小时前
MySQL 中如何进行 SQL 调优?
java·数据库·后端·sql·mysql·缓存
Elastic 中国社区官方博客2 小时前
使用 Elasticsearch 导航检索增强生成图表
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
小金的学习笔记2 小时前
RedisTemplate和Redisson的使用和区别
数据库·redis·缓存
新知图书2 小时前
MySQL用户授权、收回权限与查看权限
数据库·mysql·安全
文城5212 小时前
Mysql存储过程(学习自用)
数据库·学习·mysql
沉默的煎蛋3 小时前
MyBatis 注解开发详解
java·数据库·mysql·算法·mybatis
呼啦啦啦啦啦啦啦啦3 小时前
【Redis】事务
数据库·redis·缓存
HaoHao_0103 小时前
AWS Serverless Application Repository
服务器·数据库·云计算·aws·云服务器
C语言扫地僧3 小时前
MySQL 事务及MVCC机制详解
数据库·mysql