我正在为5000名用户制作标准的个人资料图片,现在我需要在“用户”表格中插入一个参赛资料。我不希望所有用户都拥有相同的标准配置文件图片,因此我尝试使用下面的查询中的一个字符串来更新'user_profile_image'行。
UPDATE users
SET user_profile_image = rand('adrian.jpg', 'bendix.jpg',
hr_skaeg.jpg', `'jeppe.jpg')
查询似乎不起作用。
这样太简单了吗?
非常感谢任何帮助!
亲切的问候, 的Mathias
答案 0 :(得分: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');
答案 1 :(得分: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