2016-04-30 18 views
-4

私は以下のようなMySQLテーブルを持っています。同じレコードを持つ "url"フィールド4ランダムな "st" area "1"私はそれを更新したい。 これはSQLクエリで行うことはできますか?MySQL固有の更新クエリ

enter image description here

次のような結果になりますが、更新:

enter image description here

+1

希望の出力を表示 – splash58

+0

@ splash58更新しました。 – user3236432

+1

なぜそれはある行を変更し、別の行を変更しないのですか? "1"に設定する行の違いは何ですか? –

答えて

1

私は OPはランダムな値(0または1のいずれか)で更新された列stを望んでいると思います。 これが本当であるならば、次の文は、実行します:

update mytable set st=floor(rand()*2); 

RAND()を:

は範囲0 < = V < 1.0にランダムな浮動小数点値vを返します。

だからRAND()*2は0または1

floor(rand()*2)は、行ごとに再評価されているため、この作品を与えて小数部分をオフフロート0 <= v < 2.0、およびFLOOR()ストリップを与えるので、各行は「新しい」ランダムを取得します値。 1つのだと思うと、MySQLはRANDの部分を一度だけ評価します(すべての列に同じ値を与えます)。しかし、そうではありません。