Mysql字符串切分
Mysql字符串切分的处理
前段时间做了一个对于字符串的切分,对于网页爬取的数据或者不规范的数据来源,常常会有这种需求。
由于在处理的过程中,sql语句中对字符串的出里函数以及方法不太了解,走了不少弯路。
这里记录一下。
Mysql 对字符串解切分处理,主要用到了4个函数,
SUBSTRING_INDEX(str,delim,count)
Str 是要处理字符串,
Delim是切分字符如:’,’
Count 是截取的字段数,如3,截取第三个,前的字段
这是一个很有趣的函数,当你的count,但你的count给到足够大了时候它不起任何作用,不如其他语言中的split()那么好用。
SUBSTRING(str,pos)
Str 字符串源,
Pos 开始截取的位置,pos可以为负,表示从后开始计数的位置。
CHAR_LENGTH(str)
REPLACE(str,from_str,to_str)
REPLACE(SUBSTRING(SUBSTRING_INDEX(`major_tax_violatio`,',',i),CHAR_LENGTH(SUBSTRING_INDEX(`major_tax_violatio`,',',i-1))+1),',','')
用来获取两个’,’分隔符之间的数据。
由于mysql没有在一行数据做出循环,或者保存数据办法(我不知道),所以我们能够控制截取的结果的只有count,以及where匹配。
这里我使用的是count++的方式,第一次截取所有的第一个’,’前的数据,第二次截取第二个’,’与第一个’,’之间的字符
where
SUBSTRING(SUBSTRING_INDEX(major_tax_violatio,',',i),CHAR_LENGTH(SUBSTRING_INDEX(major_tax_violatio,',',i-1))+1) regexp 'public_date' 使用正则表达式来筛选。
对于循环的跳出条件
- 当所有的元组的该字段都已经匹配上了(用一个rows+=ROW_COUNT(),来累加update的元组之和等于所有元组数)
- 当一个所有的已经匹配完毕(所有的,分割符分割的内容都已经匹配到了),但是有部分元组没有匹配到我们想要的数据。
--REPLACE(SUBSTRING(SUBSTRING_INDEX(`major_tax_violatio`,',',i),CHAR_LENGTH(SUBSTRING_INDEX(`major_tax_violatio`,',',i-1))+1),',','')
写入一个tmp表中,当这个表的所有字段都为null,或者’’时表示改字段已经匹配完毕。
Mysql字符串切分的更多相关文章
- Mysql字符串字段判断是否包含某个字符串的3种方法
方法一: SELECT * FROM users WHERE emails like "%b@email.com%"; 方法二: 利用MySQL 字符串函数 find_in_set ...
- MySQL字符串函数substring:字符串截取
MySQL 字符串截取函数:left(), right(), substring(), substring_index().还有 mid(), substr().其中,mid(), substr() ...
- MySQL字符串转日期类型
MySQL字符串转日期类型 select str_to_date('2014-08-20 00:00:00', '%Y-%m-%d %H:%i:%s'); >2014-08-20 00:00:0 ...
- mysql字符串截取
mysql字符串截取 update zcat ) where lev1 is null; update zcat ) where lev2 is null; 函数: 1.从左开始截取字符串 left( ...
- MySQL 字符串截取相关函数
MySQL 字符串截取相关函数 在工作中,可能需要将某些字段按某个分割符组成一个字符串作为字段值存取到数据库表中,比如某个任务对应三个结果,分别存储在不同的数据表中,这时可以将这三个不同表的主键按照约 ...
- MySQL字符串函数
字符串大写和小写转换 MySQL 字符串大写和小写转化函数有两对: lower(), uppper() 和 lcase(), ucase() mysql> select lower('DDD') ...
- MySQL字符串函数、日期时间函数
MySQL字符串函数.日期时间函数 一.常见字符串函数: 1.CHAR_LENGTH 获取长度(字符为单位) 2.FORMAT 格式化 3.INSERT 替换的方式插入 4.INSTR 获取位 ...
- Mysql Order By 字符串排序,mysql 字符串order by
Mysql Order By 字符串排序,mysql 字符串order by ============================== ©Copyright 蕃薯耀 2017年9月30日 http ...
- Mysql字符串截取总结:left()、right()、substring()、substring_index()
同步首发:http://www.yuanrengu.com/index.php/20171226.html 在实际的项目开发中有时会有对数据库某字段截取部分的需求,这种场景有时直接通过数据库操作来实现 ...
随机推荐
- SQL字符串处理!
一.字符转换函数1.ASCII()返回字符表达式最左端字符的ASCII 码值.在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错. 2.CHA ...
- Beta发布用户使用报告
用户数量:13人 姓名如下(包括化名):张小斌.王瑞瑞.蛋蛋.小美.晨曦.小丽.张利刚.小闫.小谢.小崔.小欢欢.小胡胡.小霞霞 寻找的用户多为王者荣耀交流协会成员的同学,对PSP Daily软件有极 ...
- 大学生对vivo手机的看法
- 2018 CCPC网络赛 hdu6444 Neko's loop
题目描述: Neko has a loop of size n.The loop has a happy value ai on the i−th(0≤i≤n−1) grid. Neko likes ...
- jQuery 追加元素、拼接元素的方法总结(append、html、insertBefore、before等)
1. append & appendTo 的功能均为:在被选元素结尾(仍在元素内部)插入指定内容,但是内容和选择器的位置不同 (1) append()方法: $("#test&quo ...
- python2.7安装django1.8后提示django-admin.py命令不存在
ln -s /usr/local/Python2.7/bin/django-admin.py /usr/local/bin/django-admin.py 将python命令目录下的django-ad ...
- Ubuntu 16.04 强制使用ipv4安装apt-get
参考文献:https://www.linuxidc.com/Linux/2015-09/123340.htm 起因:每次校园网都要自动用ipv6不知道为什么又总之链接不上,导致安装失败,有以下命令强行 ...
- POJ1037 A decorative fence
题意 Language:Default A decorative fence Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 84 ...
- return,break,continue三者区别
详解:http://www.cnblogs.com/yangdabao/p/6172210.html return:直接结束这个方法,后面所有代码不再执行,不管循坏外,还是循环内,全部停止,直接返回 ...
- SQL 快速生成不重复的卡号
--0042-9923-3598 select id = right('000000000000' + cast(cast(rand(checksum(newid()))*1000000000000 ...