【问题标题】:Update Multiple ROW by Primary Key按主键更新多行
【发布时间】:2019-04-23 13:33:24
【问题描述】:

我有超过 2000 条数据,但我输入了错误的状态编号。我应该输入 1(已部署),但我使用 2(库存中)。

如何用数千条数据将状态从 2 更改为 1?

我正在尝试使用此代码

UPDATE asset_existing
SET
ae_status = '1'
WHERE ae_serial_number = '1'

UPDATE asset_existing
SET
ae_status = '1'
WHERE ae_serial_number = '2';

UPDATE asset_existing
SET
ae_status = '1'
WHERE ae_serial_number = '3';

UPDATE asset_existing
SET
ae_status = '1'
WHERE ae_serial_number = '3';

UPDATE asset_existing
SET
ae_status = '1'
WHERE ae_serial_number = '4';

【问题讨论】:

  • 为什么对逻辑上应该是整数的列使用字符串?
  • 我想将 ae_status 从 2 更改为 1。
  • @biiboy 是 所有 表中的数据吗?
  • 一点也不。我想将 2093 数据从 15000 更改。
  • 序号是否连续?

标签: mysql sql xampp sql-update


【解决方案1】:

不知道为什么不能简单地执行:

UPDATE
    asset_existing
SET
    ae_status = '1'
WHERE
    ae_serial_number IN ('1', '2', '3', ...)
    AND ae_status = '2'
;

?

为了安全起见,我在 where 子句中添加了 ae_status = '2'

【讨论】:

    【解决方案2】:

    如果您有很多 ae_status = 2 的记录并且您想将它们更改为 1

    UPDATE asset_existing
    SET
    ae_status = '1'
    WHERE ae_status = '2';
    

    【讨论】:

    • 序列号是不是大于1?
    猜你喜欢
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    相关资源
    最近更新 更多