题目描述
查找字符串'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 |
参考
代码
# 将"10,A,B"中的逗号换成空白
select char_length("10,A,B")-char_length(replace("10,A,B",",",""))
结果