我使用的语句:
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
复制相似问题