使用PHP计算空列Mysql
我想计算空列或具有特定值的列使用PHP计算空列Mysql,php,mysql,Php,Mysql,我想计算空列或具有特定值的列 $q = mysql_query(" SELECT SUM( (`foto` = 'avatar_small.png') + (`email` IS NULL) + (`cidade` IS NULL) + (`estado` IS NULL) + (`endereco` IS NULL) +
$q = mysql_query("
SELECT SUM(
(`foto` = 'avatar_small.png') +
(`email` IS NULL) +
(`cidade` IS NULL) +
(`estado` IS NULL) +
(`endereco` IS NULL) +
(`numero` IS NULL) +
(`cep` IS NULL) +
(`telefone` IS NULL)
) FROM `info_complementos` WHERE id_user = ".$_SESSION['usuario_cargo']) or die(mysql_error());
$retorno = mysql_num_rows($q);
return $retorno[0];
问题是它显示了结果您可以使用mysql中的
COUNT
函数对返回的行进行计数。因此,您希望过滤掉WHERE
子句中不需要的行。这将统计与所有条件匹配的所有行。如果要匹配包含一些空值的行,可以将和
更改为或
<?php
$q = mysql_query("
SELECT COUNT(*) FROM `info_complementos`
WHERE
id_user = $_SESSION['usuario_cargo'] AND
`foto` = 'avatar_small.png' AND
`email` IS NULL AND
`cidade` IS NULL) AND
`estado` IS NULL) AND
`endereco` IS NULL AND
`numero` IS NULL AND
`cep` IS NULL AND
`telefone` IS NULL");
$result = mysql_fetch_array($q);
echo $result[0];
你所说的“它显示结果”是什么意思?我建议选择标准为真的COUNT(*)
(列为NULL
,等等)。然后获取结果,而不是使用mysql\u num\u rows
。显示结果或部分结果,并解释其与所需结果之间的差异非常有用。您试图匹配什么?包含所有空列的行还是只包含一些空列的行?