mysql:10661
From: <ml_mysql@xxxxxxxxxx>
Date: Wed, 15 Dec 2004 16:24:27 +0900
Subject: [mysql 10661] Re: SELECT でランダムにレコードを得る方法(再)
渡邊 さん RES 有り難うございます。 At 15:28 04/12/15, you wrote: >渡邊と申します。 > >Mysql 4.0.20で、コンソールで実験した範囲では、毎回全く違う数字の列が >出てきました。 私も、コンソールでやってみたところ、全く違う数字の列が出てきました。 これならOKです。 うーーん どこかでキャッシュされているみたいですね。 > >さて、石川さんの環境はどういう環境でしょうか。 >mysqlのバージョン、サーバの種類、サーバクライアント型の接続なのか、 >だとしたらクライアントは別機械か >別の機械なら、その上で動作させているクライアントソフトは何か、 >または何で作った物か 等で、結果が違うかもしれません。 > >Server:Redhat Linux 9.0 >Mysql: version 3.23.54 >接続:local >Client:Perl でテストしています。 うまくいけば、現在稼働中のサーバー >Server:Redhat Linux 3.0ES >Mysql: version 3.23.58 >接続:local >Client:Perl に移すつもりです。 >たとえば、私は >Server:FreeBSD >Mysql:4.0.20 >接続:local >Client:mysql >という環境で試したのですが > >これがたとえば >接続:LAN >Client: Perlスクリプト >とかになると、 >ちょっと違った話になると思います。 >たとえば、賢いDBフロントエンドなら、DBへのアクセスをキャッシュして >同じqueryならキャッシュを返すということをしてもおかしく有りません。 > >また、Perl等では一度クエリーを実行すると、クエリーの結果を >一括して取り込むということも行いますから、 >消さずにもう一度クエリーを実行すると、同じ結果を返すことがあるかもしれません。 > >とりあえず、試しに、クエリーをちょっと変えて試してみては >いかがでしょうか。 クエリーを SELECT a,b,c,d FROM table WHERE b="hogehoge" ORDER BY RAND() と換えましたが、 最初の2レコードは、同じ順序でした。 PERLは Perl version 5.8.0 です。 よろしくお願いします。 > >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]