单个查询进行选择和更新

时间:2011-02-21 18:36:34

标签: mysql sql sql-update

条件= 1时,

col1应设置为1;对于所有条件,

1 = col1的值应为0。

SELECT col1, 
       col2 
  FROM table 
 WHERE condition1 = 1;

这可以在一个查询中完成吗? (而不是1更新&1选择)。

4 个答案:

答案 0 :(得分:2)

使用:

UPDATE YOUR_TABLE
   SET col1 = CASE
                WHEN condition = 1 THEN 1
                WHEN condition IS NULL THEN 0
                ELSE 0
              END

答案 1 :(得分:1)

在MySQL中你可以这样写:

UPDATE table1
SET col1 = (condition <=> 1)

这是有效的,因为在MySQL中,布尔值TRUE等于1,FALSE为0。

答案 2 :(得分:0)

您是要尝试选择还是更新,还是只是尝试更新?

如果您只是尝试更新,则不需要SELECT查询。只需使用:

UPDATE table SET col1=1 WHERE condition=1;

答案 3 :(得分:0)

只是为了强调这也可以这样做。

update table 
set col1=if(col1 = 1,1,0);