如何计算属于userid的所有行?

时间:2010-01-06 21:25:39

标签: php mysql

$userid = $_SESSION[userid]
$sqll = mysql_query("SELECT count(id) FROM entries WHERE userid='$userid'");

使用count(id)有效吗?或者有更好的方法吗?

4 个答案:

答案 0 :(得分:4)

count(*)应该这样做。

请确保您逃脱$userid

编辑:只是半个字的解释。 count(column)计算column不为空的所有行。使用*被认为是计算行数的最有效方式,无论内容如何,​​如果某人(包括您自己)将要(重新)阅读代码,则更具描述性。

答案 1 :(得分:3)

确保您的userid列上有索引(如果它是主键,您已经这样做了。)

如果你有userid作为主键,那么这应该是一个有效的查询,并且具有与使用count(*)相同的效率。

答案 2 :(得分:1)

有人说使用COUNT(*)效率更高 这也取决于您多久会计算一次这个值以及它经常变化的频率。将缓存缓存在某个地方可能会更好。

答案 3 :(得分:0)

由于您不需要专门计算id列,因此您可以使用COUNT(*),这对于某些引擎可能会更快。