我有一堆值需要在列中更改,它们与现有值匹配。例如,
new old
100001 1001
100004 1004
100005 1005
100011 1011
100022 1022
是的,这里有一种模式,但这种模式在列表中进一步突破,因此substr
不会在整个过程中发挥作用。
无论如何,我希望做以下事情,我知道这是不对的:
UPDATE table SET field = '100001' WHERE field = '1001',
SET field = '100002' WHERE field = '1002',
etc...
在引号中,因为该字段是字母数字,尽管此示例仅显示整数。
上述的变化是否有效,我只是没想到?
尽可能避免导入,加入,重命名。
答案 0 :(得分:0)
总之,答案是否定的,以上都行不通。我刚刚创建了一个新表,将新旧代码上传到我想用新代码更新的表中插入一列。
然后我在我的JOIN
中执行了UPDATE
,将新代码读入表格,然后从他们的代码为NOT NULL
的更新中进行了更新。基本上只有几个步骤,但听起来评论中可能有更好的方法。
UPDATE table1 AS c INNER JOIN table2 AS n ON c.Code=n.OldCode SET c.NewCode = n.NewCode
WHERE c.Client= 175;
则...
UPDATE table1 SET Code = NewCode
WHERE Client = 175 AND NewCode IS NOT NULL;