MySQL选择Count和rowCount

时间:2018-05-29 16:24:17

标签: mysql select pdo count rowcount

我想检查多少B> 0在我的表中。我的表看起来像这样:

+---A---+---B---+
|   x   |   0   | 
|   x   |   0   |
|  ...  |  ...  |        
-----------------

B栏很重要。如果没有行> 0然后我就不会运行另一个代码而只能回显文本。如果有一行B> 0,那么我需要知道。

到目前为止我试过这个,它给出了图片中显示的结果。我查了桌子,没错。

"SELECT COUNT(*) FROM table
                WHERE B>0";

enter image description here

我试着用下面的代码检查0但是我给了我一个结果。可能是因为它计算了图片中的上一行。

$statement_count = $pdo->prepare($check);
$statement_count->execute(); 
$count = $statement_count->rowCount();
echo $count;

那么,我该怎么做呢?

3 个答案:

答案 0 :(得分:1)

您不需要获取行数,您需要获取查询结果并解析它,然后读取" count(*)"

的值

答案 1 :(得分:1)

如果你这样做:

$check = "SELECT B FROM table WHERE B>0"
$statement_count = $pdo->prepare($check);
$statement_count->execute(); 
$count = $statement_count->rowCount();
echo $count;

它将回显符合条件的行数。 如果你对执行SELECT COUNT的查询应用rowCount,它将按定义返回1,因为查询将始终返回一行

另一个选项是运行您拥有的计数查询

$check = "SELECT COUNT(*) FROM table WHERE B>0";
$statement_count = $pdo->prepare($check);
$statement_count->execute(); 
$count = $statement_count->fetchColumn();
echo $count;

答案 2 :(得分:1)

您的查询总是返回1行。您需要读取该行中的值。要从一行只读一列,您可以使用PDOStatement::fetchColumn

$count = $statement_count->fetchColumn();