SELECT RAND AS字段,同时选择由字段修改的其他值

时间:2012-08-31 15:28:40

标签: mysql sql random subquery selection

我试图简化这个,所以它更像是一个实际代码的例子。我想得到一个随机数并用它来修改几个值,但我需要用相同的随机数修改所有值。

我的一般SELECT语句类似于:

SELECT id, value1, value2

我希望每个值乘以相同的随机数

我知道这不起作用,因为它会使用2个不同的随机数:

SELECT id, value1 * FLOOR(RAND()*10), value2 * FLOOR(RAND()*10)

所以我想要这样的东西,但这是错的,因为我不知道我在做什么:

SELECT id, FLOOR(RAND()*10) AS rmod, value1 * rmod, value2 * rmod

我肯定需要阅读SQL中更高级的选择方法,也许有人可以指出我正确的方向?我觉得子查询?我知道我可以做一些事情,比如在我的PHP代码中创建一个随机数,然后将其拼接到SQL命令字符串中,但我一直在寻找一种仅限SQL的解决方案。

1 个答案:

答案 0 :(得分:0)

考虑一下:

select @r:=rand(),@r;

第一次调用rand()设置变量@r,可以在后续表达式中使用。在您的示例中:

SELECT id, value1 * FLOOR(@rand:=RAND()*10), value2 * FLOOR(@rand*10)