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 に答える