0

データベースからデータを抽出するために使用されている現在のコードは次のとおりです
$query = "SELECT username,time,UNIX_TIMESTAMP(time) as timestamp,UNIX_TIMESTAMP(active) as activestamp,IP FROM ".$table_name." WHERE success='1' ORDER BY active DESC";

これがデータのサンプルセットです(重要でないフィールドはすべて削除されています)
ID | username
_01 | admin
_02 | admin
_03 | bob
_04 | jill

私が欲しいのは、各ユーザーが表示される合計回数です。たとえば、次のようになります。
admin (2)
bob (1)
jill (1)

これに沿って、COUNT(IF(name = 'admin', 1, NULL)) AS login_totals表示した元のクエリに何かを追加する必要がありますが、正しいコードがわかりません。サンプルの名前adminは現在のユーザー名である必要があるので、そこに「username」を入力しますか?

4

3 に答える 3

1

これを試してください:私は追加しましたcount(*) and the group by

 $query = "SELECT username,time,
UNIX_TIMESTAMP(time) as timestamp,
UNIX_TIMESTAMP(active) as 
activestamp,IP, count(*) 
FROM ".$table_name." WHERE success='1' 
group by username 
ORDER BY active DESC";

このブログをご覧ください:http ://www.mysqlperformanceblog.com/2007/04/10/count-vs-countcol/

于 2012-10-16T20:22:21.130 に答える
0

句を追加COUNT(username)し、クエリの最後に追加します。SELECTGROUP BY username

于 2012-10-16T20:24:27.613 に答える
0
SELECT
   username,count(username)
   FROM ".$table_name." WHERE success='1' 
GROUP BY username
ORDER BY active DESC";
于 2012-10-16T21:01:39.263 に答える