• ベストアンサー

「順位データ」の持ち方について教えてください

nora1962の回答

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

MySQL以外のメジャーなRDBMSの場合、RANK() OVER()関数が使えます。 なので、テーブル側に持たず、PHP側で処理を行うのでなく、サーバー側のSQL処理に任せるのがほとんどだと思います。 MySQLの場合はRANK関数を実装していないので、ちょっと面倒ですが、NULLがない項目であればユーザー変数を使ってRANK関数を模倣することは可能です。 少し分かりにくいかもしれませんが参考にしてください。 http://note.chiebukuro.yahoo.co.jp/detail/n181988

re97
質問者

お礼

回答ありがとうございました。 RANK()関数の存在、初めて知りました。 MySQLでは利用できないのが残念ですが、参考になりましたー

関連するQ&A

  • DBから抜き取ったデータを10レコードずつ表示する方法

    データベース(MySQL)にデータを置きPHPでデータを表示しています。 しかしデータが大量になってしまったので10レコードずつ表示したいと思っています。各レコードにはauto_incrementなどで番号などの目印はつけていません。 この場合、引数で?page=1とした場合、はじめのレコードから10番目のレコードを表示し、page=2となれば11番目から21番目のレコード....といった感じにするにはどうしたらよいのでしょうか?可能なのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • mysqlへのデータ挿入

    HTMLによる送信フォームからデータを挿入するプログラムを作っているのですが、妙なエラーが出ます。 フォームにデータを入れ送信ボタンを押すとview.phpにpostをつかって渡すはずなんですが、なぜか送信ボタンを押すとview.phpをダウンロードしますか?みたいなダイアログが出てきてしまいます。開く、保存、キャンセルが選べるあのダイアログです。 このプログラムのコード自体はテキストの公式サイトからコピーしていますので記述ミスはないはずなんです。 データベースもちゃんユーザー名やパスワードなどは当たっていると思います。 PHPとmysqlのバージョンなども問題ないかと思われます。 PEARを使いデータベース接続処理をしていて、データを1件、挿入しましたと表示されるずなんですが・・・ mysqlへの接続だけのサンプルなら成功しています。 ちなみにview.phpだけを実行すると「DB Errow:syntax error」と表示されています。 かなりめちゃくちゃな質問になってしまっていて申しわけありません。 思い当たる方がいれば回答お願いいたします。

    • ベストアンサー
    • PHP
  • PHP+MYSQLからACCESSのデータにリンク

    MYSQL+PHP からaccessのデータベースを見たいのですが やり方がわかりません。 MYSQL+PHPでページができていまして、これをあんまり変更せずに accessのデータを利用したいと思っているのですが。 MYSQLを介してaccessのデータベースを見ることは可能でしょうか? ODBCを介してMYSQLのデータをアクセスで見る方法はホームページで 発見できたのですが・・・ ご存知でしたらお願いします

  • mysqlの検索結果を別のphpプログラムで参照できますか

    たとえば、A.phpというプログラムでmysqlデータを検索した結果を別のB.phpというプログラムで参照することはできますか? 必要に応じてデータベース接続、検索、データベースのクローズといった処理をその都度しなければいけないのでしょうか?

    • ベストアンサー
    • PHP
  • MySQLでのバイナリデータ削除方法

    MySQLでのバイナリデータ削除方法 現在、PHPとMySQLでデータベースを作っている初心者です。 MySQLに登録したBLOB型のバイナリデータ(jpeg画像)を削除することはできるのでしょうか。 PHPMyAdminではレコード自体は消せますが、バイナリデータについては編集不可となっています。このフィールドのみ空にすることはできるのでしょうか。 考え方、方法などご教示ください。 上書きでNULLをインサートする??のかとも思うのですが、よくわかりません。 MySQL 5.1.34 PHP 5.2.6

    • ベストアンサー
    • MySQL
  • MySQL+PHP 特定レコードの更新と作成

    MySQL+PHPの初心者です。 特定レコードの変更または新規作成のサンプルなどあればお教えいただけるでしょうか。 例えば特定商品の単価のレコードがあれば新しい単価に変更と そのレコードが無ければ新規にレコードを作成するようなケースになります。 VBAなどでは検索のSQL文からレコードセットを作成し レコードが無い場合は レコードセット名.addnewで必要なフィールドに 値をセットし レコードセット名.update 該当するレコードがあった場合は レコードセット名.edit で必要なフィールドに 値をセットし レコードセット名.updateなど簡単な処理なのですが MySQL+PHP の場合データの検索と新規レコードの単純な記述は ある程度はわかるのですが上記のようなケースは実際どのように 書かれているのかお教え願えると幸いです。 商品単価テーブルには商品コードと単価のフィールドになります。 よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • PHP+MySQLで社員DB

    PHP+MySQLで社員データベースを作りたいと考えています。 テーブルは共通にしておき、各社員が、自分のデータだけを見たり変更したりすることが出来るようにしたいと思っています。つまり、各社員は1つのテーブルのうち、その人のレコードだけしかアクセスできないようにしたいのです。 果たして、このようなことは可能でしょうか。

    • ベストアンサー
    • MySQL
  • intの数字をtimestampに変換したい

    php5,mysql5.1の環境です。 mysqlのフィールドにint(11)でunix timestampを挿入しています。 その11桁の数字の羅列をunixのタイムスタンプ形式に変更したいのですがどのようにすればよいのでしょうか。 うまく説明できないのですが、その11桁の数字はタイムスタンプとしてphp側で処理できないのでしょうか。 mysqlの種別カラムにおいて、int(11)とtimestampは同一のデータとして処理できないのでしょうか。

    • ベストアンサー
    • PHP
  • MySQLでのデータの検索

    PHPで、データベースから、条件にあうレコードだけを取り出そうとしています。 しかし、条件に合うレコードがあるはずなのに、 mysql_query()で条件を指定したSELECT文を渡して、mysql_num_rows()を出力すると0となってしまいます。 その条件とは、ある列の内容が、指定した文字列と完全に一致したら取り出すというものです。 データベースに情報を登録するときに、前後の空白は取り除いてあります。 また、文字コードは、HTML上部でutf-8に設定し、MySQLのクライアント側の文字コードも、mysql_set_charset()でutf-8に設定しています。 ファイルを保存するときの文字コードセットもutf-8にしてあります。 文字コードについては、あまりよく分からないのですが、それ以外の ところでの、文字コードの設定がutf-8以外になっているから、条件に合わない事になってしまうのでしょうか? どなたか分かる方、回答をお願いします。

  • 期限がきたら処理する方法

    環境:サーバー Windows2000Server データベース:Access2000(今後MySQLに変更予定) データベースに時刻(年月日時間分秒)がはいっています。その時刻になったら特定の処理をするようにするにはどうするのがいいのでしょうか? データベースの情報は常に更新されます。時間は基本的には更新されませんがレコードの削除はあります。 (一応レコード数は1000件ぐらいとします。)