UPDATE基于同一表中的DISTINCT

时间:2014-06-21 16:26:49

标签: mysql

在我的MySQL表中,我在字段number中有192行具有相同的值,值为548。

我需要使用MySQL中的rand函数计算新的值来对这192行进行不同的更新。

每行应具有随机计算的不同值。

我尝试了这个解决方案,但在更新中,我仍然重复具有相同值的行...

UPDATE `tbl`
SET number = FLOOR(100 +(RAND() * 150))
WHERE
    EXISTS (SELECT DISTINCT number)
AND number = 548;

1 个答案:

答案 0 :(得分:1)

update tbl set number = FLOOR(100 +(RAND() * 150)) where number = 548;

无需检查号码并运行DISTINCT。如果数字不存在,则只会更新任何内容。

SQLFiddle Demo