MySQL では、次の方法で指定された範囲内のランダムな値を選択できます:
SELECT ROUND((RAND() * (max-min))+min) AS `foo`
関数 RAND は、0 と 1 の間のランダムな小数を生成します。この小数を範囲 (最大-最小) で乗算し、最小を加算することで、目的の範囲内のランダムな値が得られます。 ROUND 関数は、結果を最も近い整数に丸めるために使用されます。
ただし、指定されたクエリは 1 つのランダムな値のみを生成します。単一行で複数のランダム値を生成する必要がある場合は、次の代替方法の使用を検討できます:
SELECT ROUND((RAND() * (max-min))+min) + 1 AS `foo`
このメソッドでは、結果に 1 を加算することで、生成されるランダム値が一意であることが保証されます。
回答に記載されている PHP と MySQL の比較では、ランダムな値のみを選択した場合、MySQL の方が高速であることがわかりました。ただし、結果セットに追加の列が必要な場合は、PHP の効率が向上します。
以上がMySQL で特定の範囲内でランダムな値を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。