我想用一个随机预定义的项目来更新我的表,该项目是我从逗号分隔的列表(如)中选择的
UPDATE the_temp SET the_temp.the_temp_status=randStr('x','y','z');
randStr
不是一个本机mysql函数,所以它不起作用。Php具有类似的功能CCD_ 2。
mysql中是否有一个函数可以像我解释的那样帮助从列表中选择一个值?。
您可以只使用ELT
和FLOOR
。只需随机放置即可使用此
select id,
ELT(FLOOR(1 + (RAND() * (50-1))), 'a','b','c','d','e','f','g','h','i','j','k','l','m ','n','o','p','q','r','s','t','u','v','w','x','y', 'z',
'A','B','C','D','E','F','G','H','I','J','K','L','M ','N','O','P','Q','R','S','T','U','V','W','X','Y', 'Z' ) as ranomdstring
from table1
演示
对于您的情况,请使用此
select id,
ELT(FLOOR(1 + (RAND() * (4-1))), 'a','b','c') as ranomdstring
from table1
此处演示
这里是更新案例
UPDATE the_temp
SET the_temp.the_temp_status=ELT(FLOOR(1 + (RAND() * (4-1))), 'a','b','c');
没有,据我所知没有。然而,你能不能用宿主语言做到这一点?我现在所知道的大多数语言都有一个从列表中随机挑选项目的功能,如果没有,你可以简单地在列表中生成一个随机索引。
我不认为它有mysql函数。你可以为它创建自己的函数,但我认为最简单的方法就是用PHP 生成查询
$randStr = $items[array_rand($items)];
$query = "UPDATE the_temp SET the_temp.the_temp_status=" . $randStr;