Php 如何计算Mysql中特定行中具有相同值的列数?

Php 如何计算Mysql中特定行中具有相同值的列数?,php,mysql,sql,Php,Mysql,Sql,我需要计算特定行(250)中具有特定值(1)的列数。根据查询,行的值是可变的 我尝试了下面的代码,但没有成功。 $total\u r=mysqli\u query($con,“从寄存器中选择*,其中ID='$ID'和1 IN(column1,column2,column3,column4)”; $total=mysqli\u num\u行($total\r); echo$总计; 我需要结果作为一个数字,比如说“2列”或类似的东西。在MySQL中,布尔值在数字上下文中变为0或1。因此,您可以添加

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

我尝试了下面的代码,但没有成功。

$total\u r=mysqli\u query($con,“从寄存器中选择*,其中ID='$ID'和1 IN(column1,column2,column3,column4)”;
$total=mysqli\u num\u行($total\r);
echo$总计;

我需要结果作为一个数字,比如说“2列”或类似的东西。

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

SELECT (column1 = 1)
       + (column2 = 1)
       + (column3 = 1)
       + (column4 = 1)
       FROM registers
       WHERE id = ?;
检查下面的查询


从寄存器中选择COUNT(*)TOT,其中ID='$ID'和column1='1'和column2='1'和column3='1'和column4='1'

最后做的是一个常规查询,然后获取每一列值并将其保存到一个变量中。然后我添加了它们,因为每一列的值可以是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,则不会被考虑到计数中。

您应该提供和一些DB数据。
从ID='$ID'
的寄存器中选择((column1=1)+(column2=1)+……)作为总计(当然,减去插入
$ID
的可能SQL注入部分)该值是否可以为
NULL
?我如何打印结果。如果我使用echo,会给出一个错误。我如何打印结果?当我使用echo时,会向我发送一个错误。我使用以下命令:$total=mysqli\u query($con),“SELECT(column1=1)+(column2=1)+(column3)=1 FROM registers,其中ID='$ID');