• 思路(参考CSDN): 第一步:剔除字符串"10,A,B"中的逗号 → 可以用空字符串替代逗号 (REPLACE字符串语句) 第二步:原来字符串的长度 - 剔除逗号后字符串的长度 = 原字符串中逗号的个数(CHAR_LENGTH语句)

  • REPLACE字符串函数(注意和用于插入和更新的用法区分):用新的字符串替换表的列中的字符串。

    REPLACE()字符串函数语法如下:

    REPLACE(str,old_string,new_string);

    REPLACE()函数有三个参数,它将string中的old_string替换为new_string字符串。

  • LENGTH():返回字符串的字节长度。

    CHAR_LENGTH():返回字符串中的字符个数。

    1个英文字母/数字 = 1个字节,1个汉字 = 3个字节.

因此个人认为本题更严谨的做法为:REPLACE()函数 + CHAR_LENGTH()函数

完整代码:

SELECT CHAR_LENGTH("10,A,B) - CHAR_LENGTH(REPLACE("10,A,B",",""))
AS cnt;

参考:

1)CSDN https://blog.csdn.net/qq_40722582/article/details/105314967

2)REPLACE()语句 https://www.yiibai.com/mysql/string-replace-function.html