通过PHP更有效地通过COUNT()MYSQL行?

时间:2010-09-26 00:12:29

标签: php mysql count

以下是我目前在PHP中计算mysql行的方法:

//GET total # of results and build $start and $end for main SQL statement
$sql= 'SELECT COUNT(*) FROM savedsearches WHERE user_id=\''.mysql_real_escape_string($user_id).'\'';
$initial_query = mysql_query($sql) or die("SQL error");
$num_sql = mysql_fetch_array($initial_query);
$numrows = $num_sql[0];
mysql_free_result($initial_query);

有更有效的方法吗?

3 个答案:

答案 0 :(得分:3)

没有。如果您想要计数,则运行您已经运行的查询。

如果您需要更高的效率,请确保user_id列上有索引

答案 1 :(得分:0)

//GET total # of results and build $start and $end for main SQL statement
$sql= 'SELECT * FROM savedsearches WHERE user_id=\''.mysql_real_escape_string($user_id).'\'';
$initial_query = mysql_query($sql) or die("SQL error");
$numrows = mysql_num_rows($initial_query)

如您所见,您可以在mysql_fetch_array之前运行mysql_num_rows()。这对我来说非常有用,因为它允许我事先知道,天气与否,我有我需要的行数。如果您想了解有关此功能的更多信息:PHP Manual: mysql_num_rows()

答案 2 :(得分:-1)

你的意思是,用更少的代码行来做?您可以将该功能放入用户定义的函数中,然后调用该函数而不是使用该代码,但除此之外,它不会变得非常糟糕。