此sql查询
UPDATE post SET random = FLOOR( 1 + RAND( ) *15 ), value = FLOOR( 1 + RAND( ) *15 )
返回列的两个不同值 random '和' value '.是否可以用相同的随机值更新一个查询中的两列?
random
value
8yparm6h1#
为什么需要两列来存储相同的随机值?一列就够了!但是,mysql允许以下不符合sql标准的行为:如果访问要在表达式中更新的表中的列,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
1条答案
按热度按时间8yparm6h1#
为什么需要两列来存储相同的随机值?一列就够了!
但是,mysql允许以下不符合sql标准的行为:
如果访问要在表达式中更新的表中的列,update将使用该列的当前值。例如,以下语句将col1设置为比其当前值多一个:
下面语句中的第二个赋值将col2设置为当前(更新的)col1值,而不是原始的col1值。结果是col1和col2具有相同的值。此行为与标准sql不同。
因此,您可以尝试以下方法: