按选定的ID更新数据库记录并重置初始记录

时间:2018-01-12 18:47:56

标签: mysql sql

请如何将所有记录更新为0并仅将所选ID设置为1

UPDATE address SET default_addr = 1 
WHERE addr_id = 100 AND user = 'peter'

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

2 个答案:

答案 0 :(得分:1)

使用case语句

使用条件更新
update address set default_address = case when addr_id = 100 and user = 'peter' then 1 else 0 end 

here is a functional example

我构建了一个示例模式。这些通常有助于您将来提出问题。

答案 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';

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