PHP+MySQLで自前のアクセスランキングを作成しています。レンタルサーバを変えた結果、PostgreSQLからMySQLに変更になったのですが、出来ないことが多くて戸惑っています。Tableにidとアクセス日時があるとして、一定期間内での各idごとのアクセス数を多い順にソートして出そうと思うのですが、viewが使えず副問い合わせもできません。このような場合どうやって対応すればよいのでしょうか?

PHP version 4.3.9
MySQL version 4.0.22-standard

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/11/10 23:27:24
  • 終了:--

回答(2件)

id:marudarts No.1

marudarts回答回数44ベストアンサー獲得回数02004/11/11 00:11:29

ポイント20pt

普通にselect文でできませんか?

スキーマ書いてくれたら、SQL書きます。

Postgreと比べ物にならない高速性と

驚くべき高負荷耐性とメンテナンス性が

気に入ってまして、MySQLをよく使ってます。

大規模システムの開発をMySQLでしたことがありますが

サブクエリーは使えなくても問題ありませんでした。

id:ganessa

なるほど。

MySQLにも大きな利点があるのですね。

米国のホスティングサービスを利用する必要があったのですが、

あちらではほとんどがMySQLのみとなっているようです。

ほとんどの副問い合わせはJOINで対応できると

どこかで聞いたことがあったのですが・・・

こんなTableがあったとして

iddate

012004/11/11 00:00:10

022004/11/12 00:00:10

022004/11/13 00:00:10

012004/11/14 00:00:10

012004/11/15 00:00:10

032004/11/16 00:00:10

2004/11/13 以降とすると

idcound

012

021

031

こんな感じの情報を返して欲しいのです。

実際の表示のさいには名称等を結合して

表示することになると思いますが。

2004/11/11 00:30:11
id:asakura-t No.2

浅倉卓司回答回数151ベストアンサー獲得回数22004/11/11 00:17:40

ポイント30pt

SELECT id, count(*) c

FROM `テーブル名`

WHERE `アクセス日時` BETWEEN [開始] AND [終了]

ORDER BY c DESC

----

とかで良いのでは?

id:ganessa

お教えいただいたものにGROUP BYを付加したところ正常に確認できいた。今まで難しく考え過ぎていたようです。助かりました。ありがとうございます。

2004/11/11 01:05:02

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません