select
id,
(length(string) - length(replace(string,",",""))) as cnt
from strings

直接求逗号个数不好求,可以换个思路,用字符串长短,因为一个逗号,占一个字符串位置, 如果有办法把逗号去掉得出一个长度,再用原有的长度相减就好了。

这个计算的核心就是用字符串的长度做差,就是第一个带逗号的字符串长度,第二个是不带逗号的字符串长度,二者做差就是一共有几个字符串,也就是有几个逗号。

求字符串长度用length()函数,

求没有逗号的函数用replace()函数。replace(column,",","")这里意思是:用空代替逗号,从而去掉逗号