单个查询进行选择和更新

发布于 2024-10-18 10:54:19 字数 184 浏览 2 评论 0原文

对于条件 = 1,col1 应设置为 1,对于所有条件 != 1,col1 的值应为 0。

SELECT col1, 
       col2 
  FROM table 
 WHERE condition1 = 1;

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

col1 should be set to 1 for condition = 1, and for all conditions != 1 the value of col1 should be 0.

SELECT col1, 
       col2 
  FROM table 
 WHERE condition1 = 1;

Can this be done in a single query? (instead of 1 update & 1 select).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

半仙 2024-10-25 10:54:19

使用:

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

Use:

UPDATE YOUR_TABLE
   SET col1 = CASE
                WHEN condition = 1 THEN 1
                WHEN condition IS NULL THEN 0
                ELSE 0
              END
半世蒼涼 2024-10-25 10:54:19

在 MySQL 中,您可以这样写:

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

这之所以有效,是因为在 MySQL 中,布尔值 TRUE 相当于 1,FALSE 相当于 0。

In MySQL you can write this:

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

This works because in MySQL the boolean value TRUE is equivalent to 1 and FALSE is 0.

墟烟 2024-10-25 10:54:19

您是否尝试选择并更新,或者只是尝试更新?

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

UPDATE table SET col1=1 WHERE condition=1;

Are you trying to select and also update, or are you just trying to update?

If you're just trying to update, then the SELECT query is unnecessary. Simply use:

UPDATE table SET col1=1 WHERE condition=1;
榕城若虚 2024-10-25 10:54:19

只是为了强调这一点也可以通过这种方式完成。

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

Just to highlight this can be done in this way too.

update table 
set col1=if(col1 = 1,1,0);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文