选择并显示表中具有相同值的行数

时间:2017-01-08 23:02:10

标签: mysql count html-table rows

基本上这是一个调查系统,我想从我的结果表中计算是和否的

  | q1  | q2  | q3 | q4 | q5 | q6  | q7 | q8  | q9  | q10 |

  | Yes | Yes | No | No | No | Yes | No | Yes | Yes | No  |

  | No | Yes | No | Yes | Yes | Yes | No | No  | Yes | No |

  | Yes | Yes | No | No | No | Yes | No | Yes | Yes | No  |

  | No | Yes | No | Yes | Yes | Yes | No | No  | Yes | No |

例如我希望我的结果是q1 = 2否是2是和q2 = 4是0否是等等 之后,我希望将它显示在一个简单的表中,但我仍然对查询一无所知

<body>

<form method="POST">


    <table border="1">

            <th>Answered Yes</th>
            <th>Answered No</th>
        </tr>

        <?php
        include("testdb.php");
        $result= mysqli_query($con, "SELECT * FROM results");

        if($result){

        ?>


    </table>

</body>

2 个答案:

答案 0 :(得分:1)

只需使用布尔表达式:

select ((q1 = 'Yes') + (q2 = 'Yes') + . . .  + (q10 = 'Yes')) as numYes

MySQL将条件表达式视为数字上下文中的数字,其中1表示true,0表示false。

答案 1 :(得分:1)

在MySQL中(仅)true1false0,因此总结条件计算它的真实次数:

select
    sum((q1 = 'Yes') + (q2 = 'Yes') + ... etc) yeses,
    sum((q1 = 'No') + (q2 = 'No') + ... etc) nod
from mytable