此SQL查询
UPDATE post
SET random = FLOOR( 1 + RAND( ) *15 ),
value = FLOOR( 1 + RAND( ) *15 )
为“ random
”和“ value
”列返回两个不同的值。
是否可以使用相同的随机值更新一个查询中的两列?
答案 0 :(得分:2)
为什么需要两列来存储相同的随机值?一栏就足够了!
但是,MySQL允许以下不符合SQL标准的behaviour:
如果您访问表中要在表达式中更新的列, UPDATE使用列的当前值。例如, 以下语句将col1设置为比其当前值大:
UPDATE t1 SET col1 = col1 + 1;
以下语句中的第二个赋值将col2设置为 当前(更新)的col1值,而不是原始的col1值。结果 col1和col2具有相同的值。此行为与 标准SQL。
UPDATE t1 SET col1 = col1 + 1, col2 = col1;
因此,您可以尝试以下操作:
UPDATE post
SET random = FLOOR( 1 + RAND( ) *15 ),
value = random