使用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;
相关推荐
程序猿202320 小时前
MySQL的锁(行锁)
数据库·mysql
W001hhh20 小时前
数据库实训Day005下午
数据库
lechcat20 小时前
多角色协同巡检流程设计技术教程
大数据·数据库·数据挖掘
小沈同学呀20 小时前
基于时间片划分的提醒算法设计与实现
服务器·数据库·算法
曹牧20 小时前
Oracle:单一索引和联合索引
数据库·oracle
Gauss松鼠会20 小时前
【GaussDB】从 sqlplus 到 gsql:Shell 中执行 SQL 文件方案的迁移与改造
数据库·sql·database·gaussdb
汽车仪器仪表相关领域20 小时前
光轴精准校准,安全检测基石——JZD-1/2前照灯检测仪用校准灯项目实战分享
数据库·算法·安全·汽车·压力测试·可用性测试
爱可生开源社区20 小时前
MySQL 优化从库延迟的一些思路
数据库·mysql·性能优化
week_泽20 小时前
小程序云数据库增加操作_3
数据库·小程序
MindCareers20 小时前
Beta Sprint Day 1-2: Alpha Issue Fixes Initiated + Mobile Project Setup
android·c语言·数据库·c++·qt·sprint·issue