我使用的语句:
INSERT INTO table (addr2, addr3)
SELECT City, State
FROM table
我试着倒车,但我不知道怎么倒车。
我想拿回我的数据。所有列和字段现在都是null
。
发布于 2019-05-21 02:09:33
你说过:
...基本上只是复制来自城市和州的所有数据,并将数据放入addr2和addr3.field中
如果要在表的所有行中将所有现有addr2
替换为city
,将addr3
替换为state
,则需要UPDATE
,而不是INSERT
UPDATE foo SET addr2 = city, addr3 = state;
..。其中foo
是表的名称。
请注意,这将替换您以前为addr2
和addr3
设置的任何值,因此请谨慎使用。如果只想在addr2
和addr3
为NULL
的地方替换它们,您可以这样做:
UPDATE foo SET addr2 = city WHERE addr2 IS NULL;
UPDATE foo SET addr3 = state WHERE addr3 IS NULL;
或者,也许:
UPDATE foo SET addr2 = city, addr3 = state WHERE addr2 IS NULL AND addr3 IS NULL;
UPDATE foo SET addr3 = CONCAT(city, ', ', state) WHERE addr2 IS NOT NULL AND addr3 IS NULL;
或者,根据您正在使用的SQL引擎,您也可以使用ISNULL()
UPDATE foo SET addr2 = ISNULL(addr2, city), addr3 = ISNULL(addr3, state);
因此,删除刚刚插入的行,然后根据需要对其余行执行UPDATE
操作。为了安全起见,您可能需要先备份数据。
https://stackoverflow.com/questions/56225386
复制相似问题