博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql分隔字符串,并将分隔字符串作为新列
阅读量:6277 次
发布时间:2019-06-22

本文共 1020 字,大约阅读时间需要 3 分钟。

hot3.png

需求:

将手机归属地数据的MobileArea字段(值格式为:省份名 城市名,如:广东 广州),省份名和城市名以空格分隔。现在须将省份名和城市名单独作为列提取出来。

具体实现:

1. 在数据增加两列Province 和City;

2. 编写存储函数和存储过程

分隔字符串的存储函数:

CREATE FUNCTION `func_split`(f_string varchar(1000),f_delimiter varchar(5),f_order int) RETURNS varchar(255)BEGIN     # 拆分传入的字符串,返回拆分后的新字符串         declare result varchar(255) default '';         set result = reverse(substring_index(reverse(substring_index(f_string,f_delimiter,f_order)),f_delimiter,1));         return result; END;

提取分隔字符串作为新列的存储过程:

CREATE PROCEDURE `splitString`()BEGINdeclare i int default 0; declare j int default 0; declare f_string varchar(10) default null; select count(*) into j from mobile;while i < jdo     set i = i + 1;     select MobileArea into f_string from mobile where ID=i;    update mobile set Province= func_split(f_string," ",1) , City= func_split(f_string," ",2)     where ID=i ;end while; END;

3. 执行存储过程: call splitString();

4. 删除原先的MobileArea列: ALTER TABLE mobile DROP COLUMN MobileArea ;

转载于:https://my.oschina.net/AlexZhuang/blog/66930

你可能感兴趣的文章
点播转码相关常见问题及排查方式
查看>>
[arm驱动]linux设备地址映射到用户空间
查看>>
弗洛伊德算法
查看>>
【算法之美】求解两个有序数组的中位数 — leetcode 4. Median of Two Sorted Arrays
查看>>
精度 Precision
查看>>
Android——4.2 - 3G移植之路之 APN (五)
查看>>
Linux_DHCP服务搭建
查看>>
[SilverLight]DataGrid实现批量输入(like Excel)(补充)
查看>>
秋式广告杀手:广告拦截原理与杀手组织
查看>>
翻译 | 摆脱浏览器限制的JavaScript
查看>>
闲扯下午引爆乌云社区“盗窃”乌云币事件
查看>>
02@在类的头文件中尽量少引入其他头文件
查看>>
JAVA IO BIO NIO AIO
查看>>
input checkbox 复选框大小修改
查看>>
网吧维护工具
查看>>
BOOT.INI文件参数
查看>>
vmstat详解
查看>>
新年第一镖
查看>>
unbtu使用笔记
查看>>
OEA 中 WPF 树型表格虚拟化设计方案
查看>>