如何在mysql中更新新添加的列

时间:2017-09-12 07:42:14

标签: mysql sql sql-server

enter image description here

你好

我添加了一个新专栏" Hours"我想更新该列。我写了下面的代码但是没有用。以下代码有什么问题?

UPDATE OFFICER
SET HOURS=5 AND HOURS=4 AND HOURS=4 AND HOURS=3
WHERE NAME IN('KASUN','MANEL','LALA');

4 个答案:

答案 0 :(得分:3)

如果您只想使用这些值填充新列,则可以UPDATE使用CASE WHEN,例如:

UPDATE OFFICER
   SET HOURS = CASE WHEN NAME = 'KASUN' THEN 5
                    WHEN NAME = 'MANEL' THEN 4
                    WHEN NAME = 'LALA'  THEN 3
               END
 WHERE NAME IN('KASUN','MANEL','LALA');
 ;


如果您想使用随机数填充行,您只需生成一个随机数:

UPDATE OFFICER
   SET HOURS = ABS(Checksum(NewID()) % 6) + 1
 WHERE NAME IN('KASUN','MANEL','LALA');
 ;

ABS(Checksum(NewID()) % 6) + 1将生成1到6之间的随机数

答案 1 :(得分:1)

猜猜看,我认为您可能需要nomatch = 0L

CASE WHEN

答案 2 :(得分:1)

如果有条件意味着您可以根据类似的条件为同一字段设置多个值。

UPDATE OFFICER SET HOURS = CASE WHEN NAME= 'KASUN' THEN 5 
                   WHEN NAME= 'MANEL' THEN 4 
                   WHEN NAME= 'LALA' THEN 3  END WHERE NAME IN('KASUN','MANEL','LALA');

另外,你可以像下面那样单独输入 -

    UPDATE OFFICER  SET HOURS=5 WHERE NAME='KASUN';

    UPDATE OFFICER SET HOURS=4 WHERE NAME ='MANEL';

    UPDATE OFFICER AND HOURS=3 WHERE NAME='LALA';

答案 3 :(得分:0)

您无法为一列设置多个值,同时您可以像这样设置一个值

UPDATE OFFICER  SET HOURS = 5 
WHERE NAME IN('KASUN','MANEL','LALA');