mysql是否将数据从表复制到具有相同值的另一个表?

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 ); 我做错了什么 ****************更新 这

我正在尝试从另一个表更新我的表

我需要根据SIM号码从表changeip中的新IP更新表1中的IP(两个表中的IP相同)

我试着从它在这里说的话来做:

这是我在命令行中写的

    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