0

SQL (MySQL) で制限数をランダム化する方法はありますか?

私ができるようにしたいのは、サーバー側のスクリプトを作成せずに、クエリで乱数の結果を取得して、挿入サブクエリで使用することです。架空の図として実行できるようにしたいクエリは次のとおりです。

SELECT id FROM users ORDER BY RAND() LIMIT RAND() * 1000

もちろんそれはうまくいきませんが、制限数をランダム化する別の方法はありますか? 限られた一連の結果をランダム化する例はたくさんありますが、ネット上でランダムな制限を設定することについては何も見つかりません。

4

2 に答える 2

0

これはどう:

    SELECT * 
      FROM users
     ORDER BY RAND()
     HAVING RAND() * 1000 < 10

この句WHERE RAND() * 1000 < 10は、1% の確率で各行を含めるようにランダムに選択します。これは完全なLIMIT variable句ではありませんが、ほぼ同じことを行います。

于 2013-12-23T18:36:33.100 に答える
0

特にMySQLの場合:

SET @i = 0;
SELECT * 
FROM users
WHERE (@i:=@i+1) < RAND()*1000
ORDER BY RAND();
于 2013-12-23T18:42:14.653 に答える