mysql关于字符串的函数
1字符串截取
1-1 left/rigth
left/right(str, length)
select LEFT("TIDUYUN.COM",4); #截取左边前4个
select RIGHT("TIDUYUN.COM",7); #截取右边前7个
1-2 substring 根据下标截取
mid()、substr()== substring()
SELECT SUBSTRING("TIDUYUN.COM",5,3) #从第5个字符开始截取3个
SELECT SUBSTRING("TIDUYUN",3); #从第三个后开始截取剩下的所有
1-3substring_index 根据特定字符截取
SELECT SUBSTRING_INDEX("WWW.TIDUYUN.COM",'.',2); #截取第2个U之前的所有字符
2字符串拼接
1concat函数拼接
SELECT CONCAT('现在的时间:',NOW()); #拼接两个或多个字符串
#任意连接的字符串为NULL,则连接后返回的结果也为NULL
SELECT CONCAT_WS('-','2020','9','30'); #字符串间增加特定符号
#任意连接的字符串为NULL,则连接后返回的结果不为NULL
特殊拼接函数 group_concat() 如果你要按照指定字段分组拼接 ,要配合 group by使用
SELECT parent_content_id,GROUP_CONCAT(name) AS targetsName
FROM assess_content
GROUP BY parent_content_id; #将同一个父级的考核指标用','拼接起来 统一展示
3字符串替换
3-1 REPLACE(str,old_string,new_string);
如果第二个参数old_string不存在,则不处理。
SELECT REPLACE("134-1452-5754",'-',''); # 返回 13414525754
3-2 INSERT( s1,x,len,s2 )
从第x个字符串起用len长的s2 替换;
SELECT INSERT("TIDUYUN.COM",5,3,'NIUBI'); # 返回结果TIDUNIUBI.COM
4字符串是否含于另一字符串
4-1 like
like有两个模式:_和%
_代表单个字符; %代表多个字符
SELECT * FROM assess_target WHERE name LIKE '%k';
4-2 locate/ position in
SELECT * FROM assess_target WHERE LOCATE('事件',name);
SELECT * FROM assess_target WHERE POSITION('事件' IN name);
4-3 regexp
正则表达式; regexp 后面的 是一个正则表达式
regexp可使用正则自由定制 定位符号^$
如果要区分大小写,应该使用BINARY关键字,如where xxx REGEXP BINARY ‘Hello.000’
SELECT * FROM assess_target WHERE name REGEXP '事件';
5字符串逆序
SELECT REVERSE("lgdnb");
6字符串大小写转换
SELECT LOWER("LGDNB");
SELECT UPPER("lgdnb");