2012-05-11 51 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/ 1301935/mysql-insert-random-from-list) –

回答

25

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'); 
+0

只是毆打我的例子:) – Cylindric

+0

@Cylindric:不用擔心 - 你有我的+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

相關問題