SQL根据多个where条件更新多行

时间:2014-06-20 09:00:42

标签: sql sql-server

我有一个Dossiers表,其中包含print_flag列,我想为多行设置print_flag = 1。

UPDATE dossiers SET print_flag = 1 
WHERE id=1013997,id=1020799,id=1020800,id=1020800;

SQL应该如何?

5 个答案:

答案 0 :(得分:3)

您应该使用IN子句,因为它允许您为单个列使用多个值。

UPDATE dossiers SET print_flag = 1 
WHERE id IN(1013997, 1020799, 1020800);

答案 1 :(得分:1)

您需要IN子句:

UPDATE dossiers 
SET print_flag = 1 
WHERE id IN (1013997,1020799,1020800,1020800);

答案 2 :(得分:1)

UPDATE dossiers 
SET print_flag = 1 
WHERE id IN(1013997,1020799,1020800,1020800);

答案 3 :(得分:1)

使用IN子句。 (顺便说一下,我不认为1020800的双倍是必要的,所以我省略了它。)

   UPDATE dossiers SET print_flag = 1 
   WHERE id IN(1013997, 1020799, 1020800);

答案 4 :(得分:0)

如果你确定你在查询中传递的id存在于表中,那么你可以试试这个:

    UPDATE dossiers SET print_flag = 1 WHERE id IN (1013997,1020799,1020800,1020800);