mysql - 通过选定的id更新数据库记录并重置初始记录

标签 mysql sql

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

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

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

最佳答案

在MySQL中,你可以这样做:

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

(此简写使用了 MySQL 将 bool 值视为数字上下文中的数字的事实,“0”表示 false,“1”表示 true。)

如果您只想为名为 Peter 的用户提供一个默认地址,请使用 where:

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

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

关于mysql - 通过选定的id更新数据库记录并重置初始记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48232328/

相关文章:

MySQL 在正确位置添加Where 子句

mysql - 将 SQL 结果行合并在一起

mysql - func.count(distinct(...)) 不会给出与 unique().count() 相同的结果

php - 选择 * 但没有包含 "This"的结果

mysql - 运行查询,根据第一个表中的数据,从一个表和两个可能的其他表中的一个中选择数据

大表上的 MySQL 更新

php - INSERT ON DUPLICATE KEY UPDATE IF 语句

sql - 如何在 'invoke-SQLcmd' 语句中使用 PowerShell 的 'if' 的结果?

c# - 如何根据从查询中检索到的值生成 "if"?

SQL Server 列的大小差异