Mysql字符串操作总结

一、字符串连接

1、CONCAT(string1,string2,…)  
       说明 : string1,string2代表字符串,concat函数在连接字符串的时候,只要其中一个是NULL,那么将返回NULL
SELECT CONCAT('1','2',NULL) FROM DUAL 结果返回NULL, SELECT CONCAT('1','2','3') FROM DUAL 运行结果返回123

2、CONCAT_WS(separator,str1,str2,...)
       说明 : string1,string2代表字符串,concat_ws 代表 concat with separator,第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。
SELECT CONCAT_WS("#",'1','2','3') FROM DUAL 结果返回1#2#3, SELECT CONCAT_WS(NULL,'1','2','3') FROM DUAL结果返回NULL

3、GROUP_CONCAT([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 
      例如:SELECT uid, GROUP_CONCAT(authority_cd ORDER BY authority_cd DESC SEPARATOR ' ## ') role
FROM user GROUP BY uid;
       uid                                     role
       1         USER ## OPERATOR ## AUDITOR ## ADMIN
对于同一个uid的role按照降序排序并以##分隔符隔开

二、判断是否包含

1、SELECT * FROM test WHERE email LIKE "%@email.com%"    
       此方法效率不是很高,所以一般不是很常用

2、利用MySQL 字符串函数 FIND_IN_SET(str,strlist)   strlist是以逗号隔开的字符串列表(,)比如   '1,2,3,4'
       SELECT * FROM test WHERE FIND_IN_SET('4', '1,2,3,4'); 如果存在则返回其str所在strlist中的索引值,需要注意的是索引不是从0开始的;不存在,返回的是0;
       SELECT FIND_IN_SET('4','1,2,,,,,,5,,') FROM DUAL,返回的结果是0 ; SELECT FIND_IN_SET('4','1,4,,4,,,,5,,') FROM DUAL 返回的结果是2,并且返回的是首个符合条件的。

3、使用LOCATE(substr, str)函数,如果包含,返回>0的数,否则返回0  ,此函数表示的是指定的子串是否在字符串中出现,同样是返回的首个子串索引
       SELECT LOCATE('4','1,123,4') FROM DUAL 返回结果是 7 ,也是从1开始计算的索引值  

笔者会根据实际使用到的情况,会不定期进行补充更新。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值