2010年6月 8日

[mysql 15339] Re: 【お知恵拝借】副問い合わせに limit 3

木村です。

 本編は収束方向ですので、下記だけ回答致します。

> >>木村さん
>
> 期待した順番に並ばないのは、GROUP BY での指定順序のせいではなく
> ORDER BY を指定していないためではないでしょうか。

> (GROUP BY の指定順序でもおそらく内部処理の仕組みから、整列され
> たレコードを得られると思うのですが、仕様上順序は「不定」だと
> 思います)

MySQL以外のデータベースのほとんどでは坂井さんのおっしゃるとおりですが、
MySQLでは仕様としてソートされることになっています。(なので、はしょりました)
GROUP BYのカラムにdescとかつけれます(笑)

SELECT a, COUNT(b) FROM test_table GROUP BY a DESC;

MySQL以外のデータベースのように、仕様上順序を不定(==ソートしない)にするためには、
逆にORDER BY NULLをつける必要があります。

SELECT a, COUNT(b) FROM test_table GROUP BY a ORDER BY NULL;

See this manual.
http://dev.mysql.com/doc/refman/5.1/ja/select.html

てなもんで。


--
キムラデービー代表 木村明治(KIMURA, Meiji)
http://kimuradb.com
[News] 2009/12/10(木) Firebird徹底入門発売!現在絶賛販売中!!
http://www.amazon.co.jp/exec/obidos/ASIN/4798119636/kimuradb-22


投稿者 xml-rpc : 2010年6月 8日 21:56
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/96214
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。