我有课程表,我正在使用' A'存储用户的完成状态。现在,我想知道A
字段中有多少CompletionStatus
可用于所有记录。
我想要这个结果:A
= 5。
CourseRecordIdx User CompletionStatus
--------------- ---- --------------------
1 152 A___A_______________
2 147 AA_______A__________
我尝试使用char_length
,但是使用下划线计算,我希望只获得A
的总数:
SELECT char_length(CompletionStatus) FROM `course` where CourseRecordIdx = 36
知道如何使用select query获取结果吗?
感谢。
答案 0 :(得分:1)
您可以将LENGTH
和REPLACE
用于此目的:
SELECT LENGTH(CompletionStatus) - LENGTH(REPLACE(CompletionStatus, 'A', '')) as count_Char
FROM `course`
这基本上计算该字符串中的字符数,然后检查该数字与具有特定字符的字符数之间的差异。
答案 1 :(得分:1)
您可以尝试这种最简单的方法:
SELECT length(REPLACE("field_name","_","")) FROM `tbl_name`;
答案 2 :(得分:0)
我认为以下内容可行,首先将所有_
替换为''
。
之后使用char_length()
函数。
SELECT CHAR_LENGTH(REPLACE(CompletionStatus,'_','') as totalA FROM course where CourseRecordIdx = 36;
答案 3 :(得分:0)
您可以为此编写此查询:
SELECT CourseRecordIdx,User,CompletionStatus,
ROUND (
(
LENGTH(CompletionStatus)- LENGTH( REPLACE ( CompletionStatus, "A", ""))
) / LENGTH("A")) AS count
from `course` where CourseRecordIdx = 36