2012-05-11 6 views
7

私は5000人のユーザーの標準プロフィール画像を作成していますが、今は「ユーザー」表に参照を挿入する必要があります。私は、すべてのユーザーが同じ標準プロファイルの画像を持っていないように、私は 'user_profile_image'行を文字列の一つで更新しようとしています。テーブルを更新して、3つのランダムな文字列の中から選択します。

UPDATE users 
SET user_profile_image = rand('adrian.jpg', 'bendix.jpg', 
hr_skaeg.jpg', `'jeppe.jpg') 

クエリが動作するようには思えません。

この方法が簡単すぎますか?

ご協力いただきありがとうございます。

敬具、 マティアス

+1

http://stackoverflow.com/questions/(これは良い[ランダム挿入]を思わ参照してください。あなたが持っているとFLOOR()を撮影した写真の数を掛けた場合、あなたはELTと結果に切り替えることができます1301935/mysql-insert-random-from-list) –

答えて

25

RAND()は0と1の間の数を返します。

UPDATE users SET user_profile_image = 
ELT(1 + FLOOR(RAND()*4), 'adrian.jpg', 'bendix.jpg', 'hr_skaeg.jpg', 'jeppe.jpg'); 
+0

ちょうど私に例を打つ:) – Cylindric

+0

@円柱:いいえ心配 - あなたは私の+1とにかく:) – eggyal

+0

これはすごく、ありがとう! –

4

あなたは、マニュアルを読む必要があります。 RAND()はあなたが思うようにはしません。

代わりにこれを試してみてください:

UPDATE users 
SET user_profile_image = 
    CASE FLOOR(RAND() * 4) 
    WHEN 0 THEN 'adrian.jpg.img' 
    WHEN 1 THEN 'bendix.jpg' 
    WHEN 2 THEN 'hr_skaeg.jpg' 
    WHEN 3 THEN 'jeppe.jpg' 
    END 

+2

なぜdownvoteですか? – Cylindric

関連する問題