?
??????? 以下是用过的一些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
?
?