如果我需要知道数据库表中的总行数,我会执行以下操作:
$query = "SELECT * FROM tablename WHERE link='1';";
$result = mysql_query($query);
$count = mysql_num_rows($result);
更新:我犯了一个错误,以上是我的实际方法。我向所有人道歉
因此,您会看到通过整个数据库扫描恢复的数据总数。
有没有更好的办法?
$query = "SELECT COUNT(*) FROM tablename WHERE link = '1'";
$result = mysql_query($query);
$count = mysql_result($result, 0);
这意味着您不会在数据库和 PHP 之间传输所有数据,这显然是对时间和资源的巨大浪费。
对于它的价值,您的代码实际上不会计算行数 - 它会给您 2 倍的列数,因为您正在计算代表单行的数组中的项目数(并且 mysql_fetch_array 给您两个每列数组中的条目 - 一个数字和一个列名)
SELECT COUNT(*) FROM tablename WHERE link='1';
你可以这样做:
SELECT count(*) FROM tablename;
供您查询。结果将是包含行数的单列。
如果我需要知道数据库表中的总行数
也许我在这里遗漏了一些东西,但是如果您只想获取表中的总行数,则不需要 WHERE 条件。只需这样做:
SELECT COUNT(*) FROM tablename
使用 WHERE 条件,您将只计算满足此条件的行数。
使用下面的代码
$qry=SHOW TABLES FROM 'database_name';
$res=mysql_query($qry);
$output=array();
$i=0;
while($row=mysql_fetch_array($res,MYSQL_NUM)){
++$i;
$sql=SELECT COUNT(*) FROM $row[0];
$output[$i]=mysql_query($sql);
}
$totalRows=array_sum($ouptput);
echo $totalRows;
如果要使用以下 SQL 语句:
SELECT COUNT(*) FROM tablename WHERE link='1';
确保您在“链接”列上有索引