mysql:6425
From: Tomoyuki Ishino <Tomoyuki Ishino <ishino@xxxxxxxxxx>>
Date: Mon, 14 Oct 2002 00:05:44 +0900
Subject: [mysql 06425] Re: servlet では order by rand() ができない?
石野です。こんばんは。 * [mysql 06424] Re: servlet では order by rand()ができない? > > データ数が少なかったため、断定を避けていたのですが、不適切でした。コマンドラ > インから発行するクエリは確実に動作します。 これ、毎回新しい接続で試されてるんでしょうか? 少なくとも手元の環境(mysql 3.23.52-max-nt)ではrand()は 同一接続内でしか、あまりうまいこといかないみたいです。 (データ量にもよるかもしれません。) ・PHPではmysql_pconnect()を使用する。 ・Javaではコネクションプーリングを利用する。 または ・rand()の引数に適当な値を指定する。 (PHPなら srand((double)microtime() * 1000000); $randval = rand() * rand(); $sql = "select * from tableName order by rand( $randval ) limit 1;"; みたいに..) とかされてみたらどうでしょうか。 レコード数わずか10件程度のテーブルでしか試してませんが、 これでそこそこうまくいくようです。 --- Tomoyuki ISHINO
6339 2002-10-07 06:20 ["城" <sora_iro@xxxxx] servlet では order by rand() ができない? 6343 2002-10-07 18:27 ┣["Takashi Yamashita" ] 6344 2002-10-07 18:30 ┃┗["Takashi Yamashita" ] 6347 2002-10-07 19:44 ┃ ┗["城" <sora_iro@xxxxx] 6348 2002-10-07 21:17 ┃ ┣["Takashi Yamashita" ] 6350 2002-10-07 22:25 ┃ ┗[Satoshi Komori <sato] 6352 2002-10-08 07:12 ┃ ┗["城" <sora_iro@xxxxx] 6353 2002-10-08 12:06 ┃ ┗[Takeyuki Miyagawa <m] 6361 2002-10-08 17:54 ┃ ┗["城" <sora_iro@xxxxx] 6362 2002-10-08 18:15 ┃ ┗["kosugi" <kosugi@xxx] 6346 2002-10-07 19:05 ┣["kosugi" <kosugi@xxx] 6349 2002-10-07 21:26 ┣["Takashi Yamashita" ] 6363 2002-10-08 18:59 ┣[<rio-t@xxxxxxxxxx> ] 6380 2002-10-09 21:42 ┃┗["城" <sora_iro@xxxxx] 6382 2002-10-09 22:58 ┗["小川 修" <shuogawa] 6392 2002-10-10 13:17 ┗["kosugi" <kosugi@xxx] 6424 2002-10-13 00:28 ┗["shuogawa" <shuogawa] -> 6425 2002-10-14 00:05 ┗[Tomoyuki Ishino <ish]