お世話になります。
よく他のサイトなどで見かけるカテゴリ分けの際にそのカテゴリに属する件数を表示する際、下記のどような方法が賢いのでしょうか?
【例】
登録されている不動産データ(1万件前後とします)を県別でカテゴリ表示
・東京都(1,234)
・神奈川県(987)
というように表示をしたい。
【方法1:】
データを追加・変更をする時点で、変更前のカテゴリの個数から-1、変更後のカテゴリの個数に+1をしてUPDATEで変更する
【方法2:】
定期的にcronでカウントするプログラムを走らせる
⇒ただこの方法だと実際の件数とCronが走るまでの間に個数に差が発生してしまう問題がでてしまう。
【方法3:】
ページを読み込む際に、count(*)で数える
【方法1】で作っていましたあ2つのカテゴリにまたがる場合(東京都、神奈川県両方)もあり、このとき【方法1】での処理が難しく質問をさせて頂きました。
上記以外にも何か良いカテゴリ件数の表示方法がありましたらアドバイス頂けますと幸いです。
No.2ベストアンサー
- 回答日時:
> 都道府県47つの場合、各都道府県ごとにcountする形になりますでしょうか?
GROUP BY 句を使えば一度の実行で、データが存在する全ての都道府県のカウントが取得できますよ。
例)
SELECT no, COUNT(*) FROM Table GROUP BY no ORDER BY no;
http://www.atmarkit.co.jp/ait/articles/0012/22/n …
http://dev.mysql.com/doc/refman/5.1/ja/group-by- …
なお、パフォーマンスの問題は本番もしくはそれに順ずる環境で実際に測定してみないとハッキリしたことは分からないかと。
No.1
- 回答日時:
1件当りのデータ量やマシンスペックなどにもよりますが、1万件程度でしたら、方法3の毎回count(*)で値を取る方法で十分だと思いますよ。
都道府県のコード?が格納されているカラムにインデックスが貼ってあれば、余程の低スペックなマシンで無い限り、問題ないスピードで動くでしょう。
早速のご回答ありがとうございます。
さくらVPSを使っており処理的には問題なさそうです。
新たな質問となってしまいますが、都道府県47つの場合、各都道府県ごとにcountする形になりますでしょうか?
例)
Select count(*) from Table where no=1
(no=1~47までforで回す)
となるとページ読み込み毎にSQLがあ47回実行されてしまいますがパフォーマンスにさほど問題はないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel2016 行間を詰めたい&同じカテゴリなら上位2つだけを表示したい 5 2022/06/03 12:19
- WordPress(ワードプレス) ワードプレスで、投稿一覧ページにタグを表示する方法 投稿につけたタグを、記事一覧ページにもカテゴリと 1 2023/05/10 21:41
- PostgreSQL 数値が定期的にあらわれる文字列から、いくつめに出現した数値が指定して切り出したい 1 2023/06/08 13:12
- Excel(エクセル) エクセルの数式で教えてください。 1 2022/10/25 09:26
- Excel(エクセル) ピボットテーブルの表示変更の仕方 初心者なので、的外れな質問だったらすみません 受注日ごとに商品名と 1 2022/04/26 23:23
- HTML・CSS WEBサイトの構築。表示データとWEBデザインを分離する考え方を専門用語・業界用語では何と言うか? 8 2022/09/27 09:16
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- その他(Microsoft Office) Microsoft Edgeの「関心のあるカテゴリ」を表示させるには。 1 2023/03/16 18:05
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 1 2022/10/27 14:21
- Excel(エクセル) Excelでの複数条件のカウントについて 1 2022/09/25 07:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
下記の問合せを行うクエリを、P...
-
「最高気温が35度以上の日を猛...
-
select *, `人口(男)`AND`人口(...
-
XamppでインストールしたMySQL...
-
矛盾していないでしょうか?
-
「第一回模試の3科目の各得点...
-
htmlコードで書かれた表にphpで...
-
データベースの接続に失敗して...
-
私の考えていることは ・mySQL ...
-
次の時間帯の勝率の合計を求め...
-
my_itemsテーブルのIDにAUTO_IN...
-
#1062 - '0' は索引 'PRIMARY' ...
-
BGMを教えてほしいです!
-
SQLでカラムを追加し、条件に合...
-
mysqlで INSERT と SELECTの用途は
-
mysqlのupdate構文についての質...
-
phpMyAdminをCentOS7にインスト...
-
2023年10月25日現在のMAMP ...
-
後でemailに追加でPRIMARY KEY...
-
本を見ながらPHPを勉強している...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
db2でisnumericは使えないので...
-
日本語のテーブル名、カラム名...
-
検索時にヒットしない
-
ACCESS2000:主キーに半角と全...
-
DB設計に要する見積もりについて
-
Accessから主キーの無いOracle...
-
各カテゴリの件数の計算方法に...
-
データベースでの質問です。
-
SQLServer2000のフィールドタイ...
-
「正規形」のよみかた
-
エクセルVBAで5行目からオート...
-
「直需」の意味を教えてください
-
Accessでテーブル名やクエリ名...
-
Accessでコードを入れると名前...
-
Oracle 2つのDate型の値の差を...
-
Accessでテーブルの値をテキス...
-
Access テキスト型に対する指定...
-
作番ってどういう意味でしょうか?
-
セルの右クリックで出る項目を...
-
テーブルの存在チェックについて
おすすめ情報