如何计算在MySQL的特定行中具有相同值的列?

时间:2019-11-11 14:06:59

标签: php mysql sql

我需要计算在特定行(250)中具有特定值(1)的列数。该行的值根据查询是可变的。

我尝试了下面的代码,但是没有用。

$total_r = mysqli_query($con, "SELECT * FROM registers WHERE ID = '$ID' AND 1 IN (column1, column2, column3, column4)";
$total = mysqli_num_rows($total_r);
echo $total;

我需要将结果作为数字,比如说“ 2列”之类。

3 个答案:

答案 0 :(得分:1)

在MySQL中,布尔值在数字上下文中变为0或1。因此,您可以添加表达式以检查列是否等于1。

SELECT (column1 = 1)
       + (column2 = 1)
       + (column3 = 1)
       + (column4 = 1)
       FROM registers
       WHERE id = ?;

答案 1 :(得分:0)

通过以下查询进行确认

SELECT COUNT(*)TOT FROM FROM WHERE ID ='$ ID'AND column1 ='1'AND column2 ='1'AND column3 ='1'AND column4 ='1'

答案 2 :(得分:0)

最后要做的是一个常规查询,然后获取并将每个列值保存到变量中。然后我只是添加了它们,因为每一列的值可能是0或1。这是代码:

$query = mysqli_query($con, "SELECT * FROM registers WHERE ID = '$ID'");
$result = mysqli_fetch_array($query);

$column1 = $result['column1'];
$column2 = $result['column2'];
$column3 = $result['column3'];

$total = $column1 + $column2 + $column3;

如果该列的值为= 0,则不会计入计数。