0

当我在 mysql 中有值和空值时,有人可以帮我 rowCount()

例如:

id        column1          column2           idcolumn
1           2                                   1  
2           3                                   1
3           1                                   1
4           0                                   1


$CountQuery = "SELECT column1 FROM follow WHERE idcolumn= ?";
$Count = $dbh->prepare($CountQuery);
$Count -> execute(array($idcolumn)); //where $idcolumn = 1
$num_1 = $Count->rowCount();
echo $num_1;

这应该给我一个计数 4,但我试图区分 column1 和 column2,所以我可以找到计数,如果我想用 $num_2 创建一个查询,它应该给我一个计数 0。

4

2 回答 2

2

用于COUNT(column)计算该列中具有非 NULL 值的行数。

$CountQuery = "SELECT COUNT(column1) AS `count1`, COUNT(column2) AS `count2` FROM follow WHERE idcolumn = ?";
$Count = $dbh->prepare($CountQuery);
$Count->execute(array($idcolumn)); //where $idcolumn = 1
$row = $Count->fetch(PDO::FETCH_ASSOC);

$num_1 = $row['count1'];
$num_2 = $row['count2'];
于 2012-08-29T04:54:08.820 回答
0

从手册来看,ROW_COUNT()不适用于SELECT查询。

如果是 UPDATE、DELETE 或 INSERT,ROW_COUNT() 返回最后一条语句更改、删除或插入的行数。对于其他语句,该值可能没有意义。

或者,您可以使用:

SELECT SQL_CALC_FOUND_ROWS column1 FROM follow WHERE idcolumn= ?

SELECT FOUND_ROWS();

您可以使用此查询来获取非空值的计数:

SELECT column(column) FROM follow WHERE idcolumn= ?;

或者您可以使用此查询来获取所有行的计数:

SELECT column(1) FROM follow WHERE idcolumn= ?;
于 2012-08-29T04:59:58.717 回答