答案 0 :(得分:1)
我认为 OP希望用随机值(0或1)更新列st
。
如果是这样,则以下语句将执行:
update mytable set st=floor(rand()*2);
返回0< = v<范围内的随机浮点值v。 1.0。
所以RAND()*2
给出一个浮动0 <= v < 2.0
,FLOOR()
剥离小数部分给出0或1。
这是有效的,因为floor(rand()*2)
会针对每一行进行重新评估,因此每一行都会获得一个&#34; new&#34;随机值。一个可能认为,MySQL只评估RAND部分一次(给所有列提供相同的值)但事实并非如此。