テーブルの各行に異なるランダム値を作成したいので、次のことを試しました:
select t.col1, rnd() from t;
しかしrnd()
、すべての行に等しい1つのランダム値を作成しました。mysqlだけでn行にn個の異なる値を作成することは可能ですか?
テーブルの各行に異なるランダム値を作成したいので、次のことを試しました:
select t.col1, rnd() from t;
しかしrnd()
、すべての行に等しい1つのランダム値を作成しました。mysqlだけでn行にn個の異なる値を作成することは可能ですか?
このrnd()
関数は「round」の略で、単純に丸めることで、この場合は何もしません。
行ごとに新しい番号を作成する必要があります。ドキュメントはこちら: http://dev.mysql.com/doc/refman/5.0/en//mathematical-functions.html#function_rand
それはintか何かとしてキャストされていますか?また、0 から 1 までの数値が必要ない場合は、代わりに次のようにする必要があります。
select t.col1, FLOOR(7 + (RAND() * 5)) from t;