牛客 SQL51 查找字符串 10,A,B 中逗号,出现的次数cnt

题目描述

查找字符串'10,A,B' 中逗号','出现的次数cnt。

题解

思路:将逗号替换成空白,将两次的长度相减再除以每个逗号所占字符长度,即可得到次数

所用到的知识点:

统计字符串长度

char_length

1、返回值为字符串string或者对应字段长度,长度的单位为字符,一个多字节字符(例如,汉字)算作一个单字符;

2、不管汉字还是数字或者是字母都算是一个字符;

3、任何编码下,多字节字符都算是一个字符;

所以一个逗号是一个字符,最后相减得到的结果就是逗号出现的次数

参考

CHAR_LENGTH()和LENGTH()的区别_Howie_Yue的博客-CSDN博客_char_length和length

replace函数 

REPLACE(s,s1,s2)将字符串 s2 替代字符串 s 中的字符串 s1

将字符串 abc 中的字符 a 替换为字符 x:

SELECT REPLACE('abc','a','x') --xbc

参考

MySQL 函数 | 菜鸟教程 

代码

# 将"10,A,B"中的逗号换成空白
select char_length("10,A,B")-char_length(replace("10,A,B",",","")) 

结果 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赚钱去流浪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值