我试图简化这个,所以它更像是一个实际代码的例子。我想得到一个随机数并用它来修改几个值,但我需要用相同的随机数修改所有值。
我的一般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的解决方案。
答案 0 :(得分:0)
考虑一下:
select @r:=rand(),@r;
第一次调用rand()设置变量@r,可以在后续表达式中使用。在您的示例中:
SELECT id, value1 * FLOOR(@rand:=RAND()*10), value2 * FLOOR(@rand*10)