-3

可能であれば 1 つのクエリで、mysql テーブル内の 2 つの異なるフィールドの特定の値をカウントする必要があります。

 Number     Answer
 0          Y
 0          N
 1          Y
 2          Y
 0          Y

「数値」フィールドの値が 0 の数を知る必要があります。

また、フィールド「Answer」の値が N である数を知る必要があります。

クエリを作成するのを手伝ってもらえますか?また、これらを使用するために変数に入れるための PHP も手伝ってもらえますか?

すなわち

 echo "There are ".$number." entries in the number field with a value of 0";
 echo "There are ".$answer." entries in the answer field with a value of N";

助けてくれてありがとう、私はphpに移る前にmysqlの数を把握しようとして立ち往生しています。

4

3 に答える 3

7

CASE式を含む集計関数を使用して、単一のクエリでこれを行うことができます。

select 
  sum(case when number=0 then 1 else 0 end) TotalNumber,
  sum(case when answer='N' then 1 else 0 end) TotalAnswer
from yourtable

デモで SQL Fiddle を参照してください

これらの結果を PHP で取得するには、mysqli_またはPDOAPIを使用できます。

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Sum(CASE 
             WHEN number = 0 THEN 1 
             ELSE 0 
           end) TotalNumber, 
       Sum(CASE 
             WHEN answer = 'N' THEN 1 
             ELSE 0 
           end) TotalAnswer 
FROM   yourtable";

if ($result = mysqli_query($link, $query)) {

    /* fetch associative array */
    $row = mysqli_fetch_assoc($result);
    echo "There are " . $row['TotalNumber'] . "entries in the number field with a value of 0";
    echo "There are " . $row['TotalAnswer'] . "entries in the answer field with a value of N";

    /* free result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>
于 2013-03-01T19:52:36.887 に答える
1

これを試して :

Select SUM(IF(Number = 0, 1, 0)) as count_numbers,
SUM(IF(Answer = 'N', 1, 0)) as count_answers
From table

サルドス ;)

于 2013-03-01T19:55:40.493 に答える
-4
Select count(`Number`) from yourtable where `Number` = 0;
Select count(`Answer`) from yourtable where `Answer` = 'N';
于 2013-03-01T19:51:17.903 に答える