+--------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+---------+------+-----+---------+-------+ | number | double | NO | PRI | NULL | | | rank | int(11) | YES | MUL | NULL | | +--------+---------+------+-----+---------+-------+number:くじ番号
rank:当選順位
みたいな感じのスキーマのデータがあったとします。
これに対してランダムにレコードを選ぶことで抽選を行い、当選順位をセットしてあげるという処理がSQL一発で出来たのでメモ
1位を3本選んでrankに1をセットするという場合はこんな感じ。
update table1 set rank=1 where rank=NULL order by rand() limit 3;同様に、2位を10本選んでrankに2をセットするという場合はこんな感じ。
update table1 set rank=2 where rank=NULL order by rand() limit 10;簡単ですねヾ(*・ω・)シ
0 件のコメント:
コメントを投稿