使用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;
相关推荐
步步为营DotNet29 分钟前
5-2EFCore性能优化
数据库·性能优化·.net
2501_920047031 小时前
Redis-集群
数据库·redis·bootstrap
半夏陌离2 小时前
SQL 拓展指南:不同数据库差异对比(MySQL/Oracle/SQL Server 基础区别)
大数据·数据库·sql·mysql·oracle·数据库架构
旋转的油纸伞2 小时前
SQL表一共有几种写入方式
数据库·sql
半夏陌离2 小时前
SQL 入门指南:排序与分页查询(ORDER BY 多字段排序、LIMIT 分页实战)
java·前端·数据库
isyoungboy2 小时前
SQL高效处理海量GPS轨迹数据:人员gps轨迹数据抽稀实战指南
数据库·sql
敬业小码哥3 小时前
记一次:mysql的json及json数组使用组合使用
数据库·mysql·json
练小杰3 小时前
【Mysql-installer-community-8.0.26.0】Mysql 社区版(8.0.26.0) 在Window 系统的默认安装配置
数据库·sql·mysql·adb·配置文件·mysql安装·关系型数据库
陈陈爱java4 小时前
Spring八股文
开发语言·javascript·数据库
拾忆,想起5 小时前
Redis复制延迟全解析:从毫秒到秒级的优化实战指南
java·开发语言·数据库·redis·后端·缓存·性能优化