1)计数记录:
//Connect to mysql server
$link = mysql_connect(HOST, USER, PASSWORD);
if(!$link) {
die('Could not connect to server: ' . mysql_error());
}
//Select database
$db = mysql_select_db(DATABASE);
if(!$db) {
die("cannot use the database");
}
mysql_set_charset('charset=utf8',$link);
$query="SELECT `id`FROM `table` WHERE `abc`='123'";
$result=mysql_query($query);
$count= mysql_num_rows($result);
我用它来计算记录。该表有500K记录。计算记录的最佳做法是什么?
2)我是初学@ mysql和php。我在上面的剧本中遗漏了什么吗?我想我最终需要关闭mysql连接!
答案 0 :(得分:3)
当你只需要计算记录时,你应该使用mysql的COUNT()
函数,而不是加载所有记录。
$query="SELECT COUNT(*) AS num FROM `table` WHERE `abc`='123'";
其次,使用PDO
代替mysql_
函数。
答案 1 :(得分:2)
为什么不让DB去做呢 - 简单的
SELECT COUNT(*) FROM table WHERE abc=123;
答案 2 :(得分:1)
mysql有一个count函数:
http://dev.mysql.com/doc/refman/5.1/en/counting-rows.html
所以你可以使用:
SELECT COUNT(*) FROM table WHERE abc=123
或任何条件。
答案 3 :(得分:1)
$query="SELECT COUNT(id) FROM `table` WHERE `abc`='123'";
$result = mysql_query($query);
$count = mysql_fetch_row($result);
这将快速而轻盈。另外,正如Jack
在上面的评论中所说,你应该使用MySQLi或PDO,因为PHP已经弃用了MySQL插件。