按所选id更新数据库记录并重置初始记录

42fyovps  于 2021-06-25  发布在  Mysql
关注(0)|答案(2)|浏览(322)

请问如何将所有记录更新到 0 仅将选定的id设置为 1 ```
UPDATE address SET default_addr = 1
WHERE addr_id = 100 AND user = 'peter'

上面的查询会将所选地址更新为1,这很好,但我想通过一个查询将其他地址或旧的所选默认值设置为0
jdzmm42g

jdzmm42g1#

使用条件更新 case 陈述

update address set default_address = case when addr_id = 100 and user = 'peter' then 1 else 0 end

下面是一个函数示例
我构建了一个示例模式。这些通常有助于在您将来的问题中提供。

798qvoo8

798qvoo82#

在mysql中,您可以执行以下操作:

UPDATE address
    SET default_addr = (addr_id = 100 AND user = 'peter');

(这个速记使用了mysql在数字上下文中将布尔值视为数字的事实,其中“0”表示false,“1”表示true。)
如果您只希望名为peter的用户有一个默认地址,则使用 where :

UPDATE address
    SET default_addr = (addr_id = 100)
    WHERE user = 'peter';

我怀疑这是你真正想要的逻辑。

相关问题