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はクエリに対しては機能しません。

ROW_COUNT()は、最後のステートメントがUPDATE、DELETE、またはINSERTの場合に、変更、削除、または挿入された行の数を返します。他のステートメントの場合、値は意味をなさない場合があります。

または、次を使用することもできます。

SELECT SQL_CALC_FOUND_ROWS column1 FROM follow WHERE idcolumn= ?

SELECT FOUND_ROWS();

このクエリを使用して、null以外の値の数を取得できます。

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

または、このクエリを使用して、すべての行の数を取得できます。

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