1

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

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

randStr不是原生的mysql函数,所以不起作用。php有类似的功能echo $items[array_rand($items)];

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

4

3 回答 3

1

你可以使用ELTand FLOOR.just 把你会随机的并使用它

   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

演示

对于你的情况 abc 使用这个

   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');
于 2013-08-04T16:25:55.823 回答
0

不,据我所知没有。但是,您不能用宿主语言执行此操作吗?我今天所知道的大多数语言都具有从列表中选择随机项的功能,如果没有,您可以简单地在列表中生成一个随机索引。

于 2013-08-04T16:21:53.360 回答
0

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

$randStr = $items[array_rand($items)];
$query = "UPDATE the_temp SET the_temp.the_temp_status=" . $randStr;
于 2013-08-04T16:23:52.523 回答