使用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;
相关推荐
李元豪2 分钟前
grpo nl2sql qwen3 模型强化学习训练有效果的成立条件有哪些
数据库·oracle
Hello.Reader3 小时前
RedisJSON 路径语法深度解析与实战
数据库·redis·缓存
TDengine (老段)3 小时前
TDengine 使用最佳实践(2)
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
设计师小聂!6 小时前
Linux系统中部署Redis详解
linux·运维·数据库·redis
kfepiza6 小时前
Debian-10编译安装Mysql-5.7.44 笔记250706
linux·数据库·笔记·mysql·debian·bash
Touper.6 小时前
Redis 基础详细介绍(Redis简单介绍,命令行客户端,Redis 命令,Java客户端)
java·数据库·redis
不剪发的Tony老师6 小时前
phpMyAdmin:一款经典的MySQL在线管理工具又回来了
数据库·mysql·phpmyadmin
极限实验室6 小时前
TDBC 2025 可信数据库发展大会,极限科技邀您来赴约!
数据库
lixia0417mul28 小时前
使用Starrocks替换Clickhouse的理由
数据库
张璐月9 小时前
mysql的性能优化:组提交、数据页复用、全表扫描优化、刷脏页
数据库·mysql·性能优化