mysql:10660
From: 渡邊昌之 <渡邊昌之 <mark@xxxxxxxxxx>>
Date: Wed, 15 Dec 2004 15:28:44 +0900
Subject: [mysql 10660] Re: SELECTでランダムにレコードを得る方法(再)
渡邊と申します。 Mysql 4.0.20で、コンソールで実験した範囲では、毎回全く違う数字の列が 出てきました。 さて、石川さんの環境はどういう環境でしょうか。 mysqlのバージョン、サーバの種類、サーバクライアント型の接続なのか、 だとしたらクライアントは別機械か 別の機械なら、その上で動作させているクライアントソフトは何か、 または何で作った物か 等で、結果が違うかもしれません。 たとえば、私は Server:FreeBSD Mysql:4.0.20 接続:local Client:mysql という環境で試したのですが これがたとえば 接続:LAN Client: Perlスクリプト とかになると、 ちょっと違った話になると思います。 たとえば、賢いDBフロントエンドなら、DBへのアクセスをキャッシュして 同じqueryならキャッシュを返すということをしてもおかしく有りません。 また、Perl等では一度クエリーを実行すると、クエリーの結果を 一括して取り込むということも行いますから、 消さずにもう一度クエリーを実行すると、同じ結果を返すことがあるかもしれません。 とりあえず、試しに、クエリーをちょっと変えて試してみては いかがでしょうか。 ml_mysql@xxxxxxxxxx wrote: > 石川と言います。 > > 以前以下のように、ご質問し、 > > >SELECT a,b,c FROM table WHERE b="hogehoge" ORDER BY RAND() > > と、ご教示頂き、 > ようやく、ソフトもできあがりましたので、テストを始めました。 > > 結果は、レコードの取り出し順が、 > > a の値を表示(インクリメントのレコード番号です) ##中略 > と 似通っております、(最初の2件はいつも同じ順序で取り出されます)。 > > > PERLで言う srand のようなもののセットができるのでしょうか? > > プログラムを走るたびに、ランダムな順序で、レコードがほしいものですから。 > > よろしくご教示ください。 _______________________________________ 渡邊昌之 mark@xxxxxxxxxx ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10570 2004-11-30 17:35 [<ml_mysql@xxxxxxxxxx] SELECT でランダムにレコードを得る方法 10571 2004-11-30 17:40 ┣[遠藤 俊裕 <endo@xxxx] 10572 2004-11-30 18:13 ┃┗[<ml_mysql@xxxxxxxxxx] 10573 2004-11-30 18:29 ┃ ┣["waya" <wayama@xxxxx] 10574 2004-11-30 18:31 ┃ ┣[遠藤 俊裕 <endo@xxxx] 10577 2004-11-30 22:31 ┃ ┃┗[<ml_mysql@xxxxxxxxxx] 10575 2004-11-30 18:31 ┃ ┗[Seiichi YANAI <yanai] 10576 2004-11-30 20:48 ┣[Daiju <d.is.here@xxx] 10659 2004-12-15 14:56 ┗[<ml_mysql@xxxxxxxxxx] Re: SELECT でランダムにレコードを得る方法(再) -> 10660 2004-12-15 15:28 ┗[渡邊昌之 <mark@xxxxx] 10661 2004-12-15 16:24 ┗[<ml_mysql@xxxxxxxxxx] 10662 2004-12-15 16:55 ┣[SUGAWARA Hajime <sug] 10669 2004-12-15 20:20 ┃┗[<ml_mysql@xxxxxxxxxx] 10663 2004-12-15 17:01 ┗[渡邊昌之 <mark@xxxxx]