1 から 20,000 までの数字のリストがあります。これらの数字をすべてテーブルにランダムに 1 回だけ挿入したいと考えています。どうすればこれを達成できますか?
たとえば、1 ~ 10 の場合、1、2、3、4 ではなく、以下の順序で挿入されます。
9 3 5 1 2 4 6 など
shuffle()を使う
$arr = <numbers 1-20K>
shuffle($arr);
<code to insert into sql>
Knuths または Floyds アルゴリズムを使用してこれを達成し、すべての数値をデータベースに保存できます。両方の実装について、この SO の質問を読んでください。
ヒントの 1 つは、生成された数値ごとにデータベースに保存しないように注意してください。挿入をバッチ処理する必要があります。