1

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

我的一般 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 解决方案。

4

1 回答 1

0

考虑一下:

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

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

SELECT id, value1 * FLOOR(@rand:=RAND()*10), value2 * FLOOR(@rand*10)
于 2012-08-31T15:53:33.720 回答