簡體   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