mysql数据库表中的地址字段不规范,比如云南省大理白、云南省大理白族、云南省德宏傣等等;怎么处理规范提取省、市信息,并保存为新的一列
时间: 2024-01-30 16:03:54 浏览: 69
可以使用 MySQL 的字符串函数和正则表达式来进行规范化处理,具体步骤如下:
1. 添加新的两列用于存储省份和城市信息
```
ALTER TABLE table_name ADD COLUMN province VARCHAR(20);
ALTER TABLE table_name ADD COLUMN city VARCHAR(20);
```
2. 更新新添加的两列的值,使用 MySQL 的 SUBSTRING_INDEX 函数和正则表达式来提取地址中的省份和城市信息,例如:
```
UPDATE table_name SET province = SUBSTRING_INDEX(address, '省', 1);
UPDATE table_name SET province = SUBSTRING_INDEX(address, '自治区', 1);
UPDATE table_name SET province = SUBSTRING_INDEX(address, '特别行政区', 1);
UPDATE table_name SET city = SUBSTRING_INDEX(SUBSTRING_INDEX(address, '省', -1), '市', 1);
UPDATE table_name SET city = SUBSTRING_INDEX(SUBSTRING_INDEX(address, '自治州', -1), '市', 1);
```
3. 更新地址列的值,去除省份和城市信息,例如:
```
UPDATE table_name SET address = REPLACE(REPLACE(address, CONCAT(province, '省'), ''), CONCAT(city, '市'), '');
```
通过以上步骤,就能够将地址字段规范化,并将省份和城市信息保存到新的两列中。
阅读全文