如果我需要知道在数据库的表中的行总数我做这样的事情:知道MySQL数据库中总行数的更快方法?
$query = "SELECT * FROM tablename WHERE link='1';";
$result = mysql_query($query);
$count = mysql_num_rows($result);
更新时间:我犯了一个错误,以上就是我的实际方式。我向所有的道歉
因此,你看到的数据总数恢复扫描通过整个数据库。
有没有更好的方法?
如果我需要知道在数据库的表中的行总数我做这样的事情:知道MySQL数据库中总行数的更快方法?
$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之间传输所有数据,这显然是时间和资源的巨大浪费。因为你计算的是代表单行的数组中的项目数量(和),因此你的代码实际上不会计算行数 - 它会给你两倍的列数,因为你要计算一个数组中的项目数mysql_fetch_array为您提供每列阵列中的两个项目 - 一个数字,一个用于列名)
你可能只是做:
SELECT count(*) FROM tablename;
为您的查询。结果将是包含行数的单个列。
我已更新我的问题。请参阅 – Starx 2010-05-27 00:53:52
如果我需要知道的行总数数据库的表
也许我m在这里丢失了一些东西,但如果你只是想获得表中的总行数,你不需要WHERE条件。只需执行以下操作:
SELECT COUNT(*) FROM tablename
使用WHERE条件,您将只计算满足此条件的行数。
+1 - 有助于说明WHERE条件。 – 2010-05-26 17:12:50
我已更新我的问题。请参阅 – Starx 2010-05-27 00:53:35
如果你要使用下面的SQL语句:
SELECT COUNT(*) FROM tablename WHERE link='1';
确保您对 '链接' 列的索引
我已更新我的问题。请参阅 – Starx 2010-05-27 00:53:17
使用下面的代码
$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;
whwy downvoted ???至少请写一些理由..以便我可以更新我的知识 – diEcho 2010-06-08 19:11:17
技术上count($ rows)调用正在计算PHP-land中$ rows数组中的行,而不是通过扫描数据库中的数据库。 – 2010-05-26 17:03:04
虽然你的方法不是最优的,但它也是错误的。你会得到数量的领域,而不是行。乘以2. – 2010-05-26 17:06:40
你想链接='1'?如果该表中所有*记录的链接都为'1',那么您将使用下面的示例来计算该表中所有记录的计数,但通常情况并非如此。如果你真的想获得所有记录,我会删除link ='1'。 – 2010-05-26 17:12:17