请如何将所有记录更新为0
并仅将所选ID设置为1
UPDATE address SET default_addr = 1
WHERE addr_id = 100 AND user = 'peter'
上面的查询会将所选地址更新为1,这是好的,但我想用一个查询将其他地址或旧的默认值设置为0
答案 0 :(得分:1)
使用case
语句
update address set default_address = case when addr_id = 100 and user = 'peter' then 1 else 0 end
我构建了一个示例模式。这些通常有助于您将来提出问题。
答案 1 :(得分:1)
在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';
我怀疑这是你真正想要的逻辑。