MySQLでランダムにレコードを検索する方法のメモ。
MySQLでランダムにレコードを検索するには order by rand() を指定します。
例えばランダムにレコードを10件取得するには以下のような select 文になります。
■方法1
乱数をあらかじめレコードに付与しておくことで、ランダムにレコードを選択することもできます。
■方法2
10万件のレコードを登録しておいて、方法1と方法2の実行時間を調べたところ、
方法1は0.06秒、方法2は0.00秒という結果になりました。
MySQLでランダムにレコードを検索するには order by rand() を指定します。
例えばランダムにレコードを10件取得するには以下のような select 文になります。
■方法1
select * from table order by rand() limit 10 ;
乱数をあらかじめレコードに付与しておくことで、ランダムにレコードを選択することもできます。
■方法2
create table rand ( id varchar(100), r float, primary key(id), index (r) ); select id from rand where r >= rand() order by r asc limit 10 ;
10万件のレコードを登録しておいて、方法1と方法2の実行時間を調べたところ、
方法1は0.06秒、方法2は0.00秒という結果になりました。