8

私は 5000 人のユーザーの標準的なプロフィール写真を作成しています。現在、'users' テーブルに参照を挿入する必要があります。すべてのユーザーに同じ標準のプロフィール画像を持たせたくないので、以下のクエリでリッスンする文字列の 1 つを使用して「user_profile_image」行を更新しようとしています。

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

クエリが機能していないようです。

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

どんな助けでも大歓迎です!

よろしく、 マティアス

4

2 に答える 2

28

RAND()0 から 1 の間の数値を返します。持っている写真の数を掛けて を取得するとFLOOR()、 で結果をオンにすることができますELT:

UPDATE users SET user_profile_image =
 ELT(1 + FLOOR(RAND()*4), 'adrian.jpg', 'bendix.jpg', 'hr_skaeg.jpg', 'jeppe.jpg');
于 2012-05-11T10:22:22.643 に答える
6

マニュアルを読む必要があります。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

;

于 2012-05-11T10:18:37.867 に答える