从一组项目中的Mysql随机项

时间:2013-08-04 16:16:20

标签: php mysql

我想使用随机预定义项目更新我的表格,我从逗号分隔列表中选择

UPDATE the_temp SET the_temp.the_temp_status=randStr('x','y','z');

randStr不是本机mysql函数,因此无法正常工作.Php具有类似的函数echo $items[array_rand($items)];

mysql中是否有一个函数可以帮助我从列表中选择一个值,如我所解释的那样?。

3 个答案:

答案 0 :(得分:1)

您可以使用ELTFLOOR。只需将随机内容放入其中并使用此

   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

DEMO

对于你的情况,b c使用这个

   select id, 
     ELT(FLOOR(1 + (RAND() * (4-1))), 'a','b','c') as ranomdstring
   from table1

DEMO HERE


此处为更新案例

UPDATE the_temp 
SET the_temp.the_temp_status=ELT(FLOOR(1 + (RAND() * (4-1))), 'a','b','c');

答案 1 :(得分:0)

不,据我所知,没有。但是,你能否用宿主语言做到这一点?我今天所知的大多数语言都具有从列表中挑选随机项的功能,如果不是,则可以在列表中生成随机索引。

答案 2 :(得分:0)

我认为它没有mysql功能。你可以为它创建自己的函数,但我认为最简单的方法就是用PHP生成查询

$randStr = $items[array_rand($items)];
$query = "UPDATE the_temp SET the_temp.the_temp_status=" . $randStr;