プロが教える店舗&オフィスのセキュリティ対策術

テーブルに下記データがあって、

SELECT ken,count(*) c from table group by ken order by c
---------
東京8
大阪7
北海度4
名古屋3
沖縄1

これを

北から順にソート
---------
北海度4
東京8
名古屋3
大阪7
沖縄1


と、いうふうに都道府県でソートするのにいい方法はありますか?
配列を使ったりしないと駄目でしょうか?

A 回答 (5件)

考え方のみですが・・・。



SELECT 都道府県.都道府県, Abs(([C]=4)+([C]=8)*2+([C]=3)*3+([C]=7)*4+([C]=1)*5) AS 並び順
FROM 都道府県
ORDER BY Abs(([C]=4)+([C]=8)*2+([C]=3)*3+([C]=7)*4+([C]=1)*5);
    • good
    • 0
この回答へのお礼

PHPでループ処理させて行うしかないかなと思ったのですが、MySQLユーザー会のページにヒントがありました。

で、

SELECT field(ifnull(ken,0),'北海道','東京','名古屋','大阪','沖縄') map,ken,count(*)
FROM table
GROUP BY city_c
ORDER BY map

で出来ました。
filed、ifnull関数は使ったことはなかったのですが、なかなか優れものでしょうか。

みなさんご協力ありがとうございました。

お礼日時:2006/09/01 15:35

県庁所在地の緯度の列か表を設けて、それでソートするというのも


一つの方法です。

想定してらっしゃる順番とは違う順になる可能性が高いような気がしますが。
    • good
    • 0

JIS X 0401で指定した都道府県コードというのがあります。



http://ja.wikipedia.org/wiki/%E5%85%A8%E5%9B%BD% …

これを使うのが一般的で汎用的です。
    • good
    • 0

都道府県とは別に管理コードのような物はありますか?


普通はそのようなコードを使って管理しますが・・・
北からソートしたいのならば北海道を'01'なんかにして沖縄まで数を増やしながらコードを設定していきます。
どの都道府県から南北を認識出来るようなDBやコマンドは存在しません。
    • good
    • 0

普通は県を順番にかいたIDで管理しますね。


それと名古屋は都道府県ではないです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す