mysql是否将数据从表复制到具有相同值的另一个表?
我正在尝试从另一个表更新我的表 我需要根据SIM号码从表changeip中的新IP更新表1中的IP(两个表中的IP相同) 我试着从它在这里说的话来做: 这是我在命令行中写的mysql是否将数据从表复制到具有相同值的另一个表?,mysql,database,Mysql,Database,我正在尝试从另一个表更新我的表 我需要根据SIM号码从表changeip中的新IP更新表1中的IP(两个表中的IP相同) 我试着从它在这里说的话来做: 这是我在命令行中写的 UPDATE table1 SET table1.IP = ( SELECT changeip.New_IP FROM changeip WHERE table1.SIM_NEW = changeip.SIM_Number ); 我做错了什么 ****************更新 这
UPDATE table1
SET table1.IP = (
SELECT changeip.New_IP
FROM changeip
WHERE table1.SIM_NEW = changeip.SIM_Number
);
我做错了什么
****************更新
这是表1
‘10.226.202.169’、‘8997250000031944123’
‘10.226.202.170’、‘8997250000031944131’
‘10.226.202.173’、‘8997250000031944164’
‘10.136.136.101’、‘8997250400019201597’
‘10.136.136.102’、‘8997250400019201589’
‘10.136.136.103’、‘8997250400019201571’
‘10.136.136.104’、‘8997250400019201563’
等等
这是兑换台
‘10.226.202.169’、‘8997250000031944123’、‘10.136.137.221’
‘10.226.202.170’、‘8997250000031944131’、‘10.136.137.222’
‘10.226.202.173’、‘8997250000031944164’、‘10.136.137.223’
“10.226.202.174”、“8997250000031944172”、“10.136.137.224”
‘10.226.202.175’、‘8997250000031944180’、‘10.136.137.225’
‘10.226.202.177’、‘8997250000031944206’、‘10.136.137.226’
谢谢
ALTER table1 MODIFY IP varchar(20) null;
如果另一个表包含空值,则将列从NOTNULL更改为null您需要
join
和update
UPDATE table1 t
inner join changeip p
on t.SIM_NEW= p.SIM_Number
and t.IP=p.old_ip
SET t.IP =p.New_IP
如果您希望更新
changeip
表中具有IP的IP,并将没有新IP的IP保留为旧IP,则此操作应该有效:
UPDATE table1
SET table1.IP = (
SELECT changeip.New_IP
FROM changeip
WHERE table1.SIM_NEW = hangeip.SIM_Number
AND hangeip.New_IP IS NOT NULL
);
实现所需结果的简单方法如下: 根据您的数据,开始表是 及 如果您运行查询
UPDATE table1, changeip
SET table1.IP = changeIP.old_IP
WHERE table1.SIM = changeip.SIM_Number
结果如下:
我相信这是理想的结果。上面的大多数建议都缺少UPDATE语句中的WHERE子句,这就是它们失败的原因。table1.IP必须为null,请将列从NOTNULL更改为null。由于changeip.New\u IP包含空值,因此也可能是输入错误,“WHERE table1.SIM\u New=hangeip.SIM\u Number”如果changeip表中的IP为空,该怎么办?它应该更新为null还是保留旧IP?@Kool Mind,但table1.IP中有一个值。。。我想覆盖它-所有这些冒号都充满了数据。那里没有空的牢房。关于isaace所说的-不能为空-这是一个100%的表,包含数据,当我运行此操作时,changeip.IP表中没有空\null-我没有收到任何错误,但它不会更新任何内容…@David12123 can。请共享这两个表的数据,因为它应该是工作的告诉我怎么做will@David12123如果您有两个表的SIM_号码,它将加入并更新您的表1。您是否有多个新的SIM_IP与表1的SIM_号码相对?我收到以下错误:错误代码:1048。列“IP”不能为空,这不可能是因为表1.IP中都有数据-我正在用新IP替换旧IP。
UPDATE table1, changeip
SET table1.IP = changeIP.old_IP
WHERE table1.SIM = changeip.SIM_Number