8

我正在为 5000 个用户制作标准个人资料图片,现在我需要在“用户”表中插入参考。我不希望所有用户都拥有相同的标准个人资料图片,因此我尝试使用以下查询中的字符串之一更新“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 回答