MySQL Select 计数和行计数
MySQL Select Count and rowCount
我想检查我的 table 中有多少个 B > 0。我的 Table 看起来像这样:
+---A---+---B---+
| x | 0 |
| x | 0 |
| ... | ... |
-----------------
B 列很重要。如果没有 row > 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;
那么,我可以做些什么呢?
不需要获取行数,需要获取查询结果并解析,然后读取"count(*)"
的值
如果你这样做:
$check = "SELECT B FROM table WHERE B>0"
$statement_count = $pdo->prepare($check);
$statement_count->execute();
$count = $statement_count->rowCount();
echo $count;
它将回显符合您条件的行数。
如果您将 rowCount 应用于执行 SELECT COUNT 的查询,根据定义它将 return 1 因为查询将始终 return 一行
另一个选项是 运行 您的计数查询
$check = "SELECT COUNT(*) FROM table WHERE B>0";
$statement_count = $pdo->prepare($check);
$statement_count->execute();
$count = $statement_count->fetchColumn();
echo $count;
您的查询总是 returns 恰好 1 行。您需要读取该行中的值。要只读取一行中的一列,您可以使用 PDOStatement::fetchColumn
:
$count = $statement_count->fetchColumn();
我想检查我的 table 中有多少个 B > 0。我的 Table 看起来像这样:
+---A---+---B---+
| x | 0 |
| x | 0 |
| ... | ... |
-----------------
B 列很重要。如果没有 row > 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;
那么,我可以做些什么呢?
不需要获取行数,需要获取查询结果并解析,然后读取"count(*)"
的值如果你这样做:
$check = "SELECT B FROM table WHERE B>0"
$statement_count = $pdo->prepare($check);
$statement_count->execute();
$count = $statement_count->rowCount();
echo $count;
它将回显符合您条件的行数。 如果您将 rowCount 应用于执行 SELECT COUNT 的查询,根据定义它将 return 1 因为查询将始终 return 一行
另一个选项是 运行 您的计数查询
$check = "SELECT COUNT(*) FROM table WHERE B>0";
$statement_count = $pdo->prepare($check);
$statement_count->execute();
$count = $statement_count->fetchColumn();
echo $count;
您的查询总是 returns 恰好 1 行。您需要读取该行中的值。要只读取一行中的一列,您可以使用 PDOStatement::fetchColumn
:
$count = $statement_count->fetchColumn();