如何使用sql设置一个值并更改满足条件的所有其他值

vyswwuz2  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(201)

我有一个可以添加帖子的系统。当你编辑一篇文章时,你可以选择将它保存为一个版本。这样人们就可以检查旧版本的文本。
我正在尝试添加在页面上设置默认文本的可能性。
我数据库中的所有文本都有一个名为 active 添加第一个文本时为1,创建任何新版本时为0。
在我显示文本的页面上,始终显示active=1的文本,因此我希望能够将一个文本设置为active,同时将同一类别的所有其他文本设置为0或inactive。
这样,用户可以选择默认显示哪个版本。
我该怎么做?
我的数据库布局:

如您所见,有一行名为 parent_id 我只想用这个id更改所有其他值。
比如说,我想 id 4至 1 然后两者 id 1和5需要 0 . 只有 parent_id 73在这种情况下会受到影响。
如何使用sql来实现这一点?我见过一些使用 CASE 但那是另一种db语言。

hs1rzwqc

hs1rzwqc1#

在set子句中可能使用case

update  my_table 
set active = (case when id  = 4 then 1 else  0  end) 
where parent_id = 73

相关问题