0

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接続を閉じる必要があると思います!

4

4 に答える 4

3

レコードのカウントのみが必要な場合は、COUNT()すべてのレコードをロードするのではなく、mysqlの関数を使用する必要があります。

$query="SELECT COUNT(*) AS num FROM `table` WHERE `abc`='123'";

次に、関数PDOの代わりに使用しmysql_ます。

于 2012-08-30T02:48:33.333 に答える
2

DBにやらせてみませんか-単純なものはどうですか

SELECT COUNT(*) FROM table WHERE abc=123;
于 2012-08-30T02:48:03.427 に答える
1

mysqlにはカウント機能があります:

http://dev.mysql.com/doc/refman/5.1/en/counting-rows.html

だからあなたは使うことができます:

SELECT COUNT(*) FROM table WHERE abc=123

または任意の条件。

于 2012-08-30T02:49:09.557 に答える
1
$query="SELECT COUNT(id) FROM `table` WHERE `abc`='123'";
$result = mysql_query($query);
$count = mysql_fetch_row($result);

これは速くて軽いです。また、Jack上記のコメントで述べたように、MySQLアドオンはPHPで非推奨になっているため、MySQLiまたはPDOのいずれかを使用する必要があります。

于 2012-08-30T02:51:05.263 に答える