请问如何将所有记录更新到 0 仅将选定的id设置为 1 ```UPDATE address SET default_addr = 1WHERE addr_id = 100 AND user = 'peter'
0
1
上面的查询会将所选地址更新为1,这很好,但我想通过一个查询将其他地址或旧的所选默认值设置为0
jdzmm42g1#
使用条件更新 case 陈述
case
update address set default_address = case when addr_id = 100 and user = 'peter' then 1 else 0 end
下面是一个函数示例我构建了一个示例模式。这些通常有助于在您将来的问题中提供。
798qvoo82#
在mysql中,您可以执行以下操作:
UPDATE address SET default_addr = (addr_id = 100 AND user = 'peter');
(这个速记使用了mysql在数字上下文中将布尔值视为数字的事实,其中“0”表示false,“1”表示true。)如果您只希望名为peter的用户有一个默认地址,则使用 where :
where
UPDATE address SET default_addr = (addr_id = 100) WHERE user = 'peter';
我怀疑这是你真正想要的逻辑。
2条答案
按热度按时间jdzmm42g1#
使用条件更新
case
陈述下面是一个函数示例
我构建了一个示例模式。这些通常有助于在您将来的问题中提供。
798qvoo82#
在mysql中,您可以执行以下操作:
(这个速记使用了mysql在数字上下文中将布尔值视为数字的事实,其中“0”表示false,“1”表示true。)
如果您只希望名为peter的用户有一个默认地址,则使用
where
:我怀疑这是你真正想要的逻辑。