获得一行中具有特定值的字段的计数?mysqli-php


Get count of fields with a specific value in a row? mysqli-php

请假定这是表格表——schemeOverview

| slno    |schemename | amount| date2 | date3 | date4 ...daten   |
|---------|-----------|-------|-------|-------|-------|----------|
|    1    | Cell      | 1000  | DUE   | DUE   |       |          |
|    2    | Cell      | 1000  | PAID  | PAID  |       |          | 
|    3    | Cell      | 1000  | DUE   | DUE   | DUE   |          |
|    4    | Cell      | 1000  | PAID  | PAID  |       |          | 
|    5    | Cell      | 1000  | DUE   | DUE   |       |          |

我试图计算有价值的字段为'PAID'的数量。例如,slno-2的PAID计数应该是2。

每个表的日期列数不同,但我有一个表的日期列数。因此,更好的选择是检查指定行的所有字段(slno)

可以使用以下代码

SELECT slno,count(*) AS paid 
FROM schemeOverview
WHERE 'PAID' IN (date2, date3, date4,...,daten)

在经历了大量的人才流失之后,我想出了这个方法,它很有效!

$paidCount=0;
$sql2 = "SELECT *  FROM " .$scheme_name. " WHERE slno = " .$recBookNo;
$result2 = mysqli_query($conn,$sql2);
if($result2)
 {
    while ($row19 = $result2->fetch_assoc())
    {
         foreach ($row19 as $key => $value)
            {
                    if(($value)=='PAID')
                        {
                            $paidCount++;
                        }
            }
   }
}

您可以使用count()

SELECT count(date2) as cd2 FROM schemeOverview WHERE date2 = "PAID"

将值存储到cd2中,在本例中为2