如何更新 MySQL 中除某一字段语句外的所有字段?

How to update all fields but one certain field statement in MySQL?

假设我有一个 table 'tbl' 具有 4 字段架构:f1,f2,f3,f4 .我有一堆数据(csv 格式,其字段的列表顺序与 table 模式相同 [因为我设计它],但在 csv 中将 field-f3 值保留为 ',')需要从我的用户那里更正但只保留 f3 不变。我想象有这样一个更新语句:

UPDATE tbl VALUES ('new-f1-val','new-f2-val', IGNORE, 'new-f3-val')

当数据库引擎看到这条语句时,它会将 IGNORE 识别为系统预定义的保留 word/constant,告诉数据库引擎忽略(即 NOT TO)更新此语句特定领域。我不是在讲童话,因为我经常面对用户的这些需求。

在 MySQL 中是否有这样的声明,无论是当前的还是未来的,或者任何等效的 statements/procedures 来达到相同的结果?

==================================

很多人不理解我为什么会这样说,所以我在这里说说我的实际动机:

  1. table 'tbl' 可能有很多字段。
  2. 不更新字段 'f3' 是永久条件。
  3. 没有关于可能需要更正哪些其他字段的信息,因此我将更新所有其他字段。
  4. 希望更新语句简短。
  5. 我希望有一个与插入非常相似的更新语句 没有列出每个字段名称的语句。
  6. 如果有这样的说法,我可以省去修改我的工作 “创建插入语句”代码到“更新更新语句”代码。

==================================

编辑: 我添加了用户给我的数据文件格式的描述来完善我的问题。

==================================

我从未见过 UPDATE 像 MySQL 中那样写的。一个典型的 UPDATE 沿着你想要的路线看起来像这样:

UPDATE tbl
SET f1 = 'new-f1-val',
    f2 = 'new-f2-val',
    f4 = 'new-f4-val'
WHERE <some condition>

如果您不想修改 f3 列,则只需将其从 UPDATE 语句中删除即可。

检查更新查询语法。 https://dev.mysql.com/doc/refman/5.7/en/update.html

Update tbl set f1=new-f1-val, f2=new-f2-val, f4=new-f4-val

您应该 始终 在 table 中显式添加要更新的列,这是一种很好的做法,尽管您需要缩短查询。
也就是说,尝试插入 "null" 并检查它是否有效。这里不能保证,我自己没试过。