繁体   English   中英

MySQL - 如何从所有记录中获取特定值的计数

[英]MySQL - How to get counts of specific value from all the records

我有课程表,我用“A”存储用户的完成状态。 现在我想知道所有记录的CompletionStatus字段有多少A可用。

我想要这个结果: 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查询获得结果吗?

谢谢。

您可以为此目的使用LENGTHREPLACE

SELECT LENGTH(CompletionStatus) - LENGTH(REPLACE(CompletionStatus, 'A', '')) as count_Char
 FROM `course`

这基本上计算该字符串中的字符数,然后检查该数字与具有特定字符的字符数之间的差异。

您可以尝试这种最简单的方法:

 SELECT length(REPLACE("field_name","_","")) FROM `tbl_name`;

我想以下内容将起作用,首先用''替换所有_ 之后使用char_length()函数。

SELECT CHAR_LENGTH(REPLACE(CompletionStatus,'_','') as totalA FROM course where CourseRecordIdx = 36;

您可以为此编写此查询:

SELECT CourseRecordIdx,User,CompletionStatus,
ROUND (   
    (
    LENGTH(CompletionStatus)- LENGTH( REPLACE ( CompletionStatus, "A", "")) 
    ) / LENGTH("A")) AS count    
from `course` where CourseRecordIdx = 36

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM