我正在尝试从另一个表更新我的表
我需要根据sim号码从表changeip中的新ip更新表1中的ip(两个表上的whcih相同)
我试着按照这里所说的做:mysql update column with value from another table
I get error "IP can't be null"
这是我在命令行中写的
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'
等等。。。。。。。。
这是changeip表格
'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'
谢谢,
4条答案
按热度按时间az31mfrm1#
实现所需结果的简单方法如下:
根据您的数据,开始表是
和
如果您运行查询
结果如下:
我相信这是理想的结果。上面的大多数建议都缺少update语句中的where子句,这就是它们失败的原因。
k2fxgqgv2#
你需要
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
brvekthn3#
如果您想更新那些在服务器上有ip的服务器,这应该是可行的
changeip
表并将没有新ip的保留为旧ip:brccelvz4#
如果其他表包含null值,则将列从notnull改为null