mysql选择count和rowcount

azpvetkf  于 2021-06-23  发布在  Mysql
关注(0)|答案(3)|浏览(277)

我想查一下我的table里有多少个b>0。我的table是这样的:

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

b栏很重要。如果没有行>0,那么我就不会运行其他代码,只需回显文本即可。如果有一行b>0,那么我需要知道。
我已经试过了,结果如图所示。我检查了table,没错。

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


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

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

那么,我能做些什么呢?

yyyllmsg

yyyllmsg1#

您不需要获取行计数,您需要获取查询结果并对其进行解析,然后读取“count(*)的值

7eumitmz

7eumitmz2#

如果您这样做:

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

它将回显符合条件的行数。如果对不选择count的查询应用rowcount,则根据定义,它将返回1,因为查询将始终返回一行
另一个选项是运行count查询

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

qgelzfjb3#

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

$count = $statement_count->fetchColumn();

相关问题