日期:2014-05-16  浏览次数:20736 次

Mysql字符串处理函数整理

?

??????? 以下是用过的一些MySql字符串函数整理的方法,罗列出来仅供参考。

1、非法数据替换


函数:replace(str,from_str,to_str)
??????? 查询后发现数据库中存在一些非法数据,导致看起来非常难看,数据入库时只检查了前后空格,没有做更严格的去空格处理,只能进行事后处理。

        update table set cname = replace(cname,' ','');
        update table set cname = replace(cname,' ','');

?

??????? 有些字段看似空格,实际上不是空格的东西。可能是一些全角符合或者其他的,复制该字段然后粘贴至需替换中即可。

?

2、查询结果字段连接
??????? 函数1:concat(str1,str2,str3)
??????? 函数2:concat_ws(splitstr,str1,str2,str3)
??????? 函数3:group_concat(str)

?

函数1 concat(str1,str2,str3)
??????? 很简单,只是将制定列或字符串拼接起来然后使用。

?

函数2 concat_ws(splitstr,str1,str2,str3)?
??????? 将str1,str2,str3以splitstr为分隔符进行连接并返回结果。

?

函数3? group_concat(str)?
??????? 手册上说明:该函数返回带有来自一个组的连接的非NULL值的字符串结果。
??????? 比较抽象,难以理解。

??????? group_concat()会计算哪些行属于同一组,将属于同一组的列显示出来。要返回哪些列,由函数参数(就是字段名)决定。分组必须有个标准,就是根据group by指定的列进行分组。

1、测试语句,
????????

select province,group_concat(name) from city group by province;

??????? 河北??? 保定,石家庄,邯郸,邢台
??????? 北京??? 北京
????????

select group_concat(name) from city;

??????? 保定,石家庄,邯郸,邢台,北京

?

函数4 subString_index(str,indexstr,index)
??????? 以字符标识截取字符串的函数,第二个参数为指定字符,第三个参数为该字符出现的次数
????????

select sum(substring_index("0.124M",'M',1)) from dual;

??????? 返回结果为:0.124

?

?