假设我有一张桌子' tbl '使用4场模式: f1,f2,f3,f4 。我有一堆数据(以csv形式,其字段的列表顺序与表格模式相同,因为我设计了它,但是将字段-f3值保留为csv中的' ,,')需要纠正我的用户,但只保留f3不变。我在那里形成如下更新声明:
UPDATE tbl VALUES ('new-f1-val','new-f2-val', IGNORE, 'new-f3-val')
当db引擎看到此语句时,它会将 IGNORE 识别为系统预定义的保留字/常量,告知db引擎忽略(即NOT TO)更新此特定字段。我没有讲童话,因为我不断地面对用户的这些需求。
在MySQL中是否有这样的声明,无论是当前的还是将来的,或者是否有任何等效的声明/程序来实现相同的结果?
==================================
很多人不明白为什么我要对这种陈述进行描绘,所以我会在这里说出我的实际动机:
==================================
编辑: 我添加了用户给我的数据文件格式的描述,以改进我的问题。
==================================
答案 0 :(得分:2)
我从来没有见过UPDATE
以MySQL的方式编写它。您想要的典型UPDATE
看起来像这样:
UPDATE tbl
SET f1 = 'new-f1-val',
f2 = 'new-f2-val',
f4 = 'new-f4-val'
WHERE <some condition>
如果您不想修改f3
列,请将其从UPDATE
声明中删除。
答案 1 :(得分:2)
查看更新查询语法。 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
答案 2 :(得分:2)
您应该始终在表格中明确添加要更新的列,这是一个很好的做法,尽管如此,您仍需要缩短查询。
话虽如此,尝试插入“null”并检查它是否有效。这里不保证,我自己也没试过。