• 締切済み

PHP+MySQL

ORDER BY 句で件数の多い順に(仮:都道府県の登録件数)ソートをさせたいのですよく分かりません。count()とかも試しましたがダメでした。教えて下さい。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.4

ごめんなさい。SQLについての知識はどの程度なのでしょうか? SQLを曲解している可能性もあるので回答しづらいところです。 通例カウントした値でソートするならGROUP BYです SELECT area,count(*) as count FROM テーブル GROUP BY area ORDER BY count desc 一件ごとのデータにareaの多い順という条件を付加したいのであれば サブクエリーをつかうか外部結合をする必要があるでしょう。 そうなるとSQLのバージョンの提示が必要です。

すると、全ての回答が全文表示されます。
  • agharta
  • ベストアンサー率52% (54/103)
回答No.3

複数にまたがるテーブルで集計しているのでしょうか? やはりテーブル構造が分からないので提示できるところだけ提示しないと 答えようがないと思うのですが… > $sql.= ' ORDER BY count(area) desc , registTime desc '; プログラム中の変数の記載方法では問題ないように思います。 エラーは出力はどうなっていますか?

すると、全ての回答が全文表示されます。
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

>count()とかも試しましたがダメでした どう試してどうだめだったのでしょう? GROUP BY して、COUNTしたフィールドでORDER BYしてます?

amd64
質問者

補足

GROUP BY をするとグループ化されて、全件が表示されませんでした。

すると、全ての回答が全文表示されます。
  • agharta
  • ベストアンサー率52% (54/103)
回答No.1

はじめまして この質問では、登録件数は既に登録されているのか、SQLで計算するのかが分かりません。 また、どのようなSQLを書いて駄目だったのでしょうか。 よって、 ・カラムの意味も含めてテーブル構造 ・失敗したSQL の2点を書いた方がアドバイスしやすいと思います。

amd64
質問者

補足

DBに登録されてある名簿で、登録されてある住所の中から、登録件数の多い都道府県からソートして、さらに登録順に表示させたいと思っております。 $sql.= ' ORDER BY count(area) desc , registTime desc '; と書きましたがcount()関数が使えませんでした。 1回のSQLでは無理でしょうか??

すると、全ての回答が全文表示されます。

関連するQ&A