[英]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查询获得结果吗?
谢谢。
您可以为此目的使用LENGTH
和REPLACE
:
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.