Mysql 通过从另一个数据库获取值来更新行
通过从另一个数据库获取值来更新行的最佳过程是什么 下面是我使用的查询Mysql 通过从另一个数据库获取值来更新行,mysql,sql,database,Mysql,Sql,Database,通过从另一个数据库获取值来更新行的最佳过程是什么 下面是我使用的查询 UPDATE live_client_production.measurement_attachment t1 INNER JOIN live_client_uk.measurement_attachment t2 ON t2.active = t1.active SET t1.content = t2.content where t1.id=97 AND t2.id=1; 对于下一个要更新的值,给出了t1
UPDATE live_client_production.measurement_attachment t1
INNER JOIN live_client_uk.measurement_attachment t2
ON t2.active = t1.active
SET t1.content = t2.content
where t1.id=97
AND t2.id=1;
对于下一个要更新的值,给出了t1.id
和t2.id
的值
UPDATE live_client_production.measurement_attachment t1
INNER JOIN live_client_uk.measurement_attachment t2 ON t2.active = t1.active
SET t1.content = t2.content
where t1.id=98
AND t2.id=2;
有没有办法设置一个限制或范围,使t1.id
和t2.id
自动递增到某个范围
在mysql中执行此操作的最佳过程是什么
我诚恳地请求您帮助我您可能会帮我一个忙
where t1.id = (t2.id+96);
但这让我很紧张,因为它假设两个ID之间总是96。如果您可以让id相同,使两个表中的id都是98,或者两个表中都有一些代码将它们标识为用于相同数据,我会更舒服。那你有
where t1.id = t2.id
或
可以过滤Id列的相对差异,并设置天花板 差不多
WHERE t1.id=t2.id+96
AND t1.id < @SomeCeilingValue
其中t1.id=t2.id+96
和t1.id<@SomeCeilingValue
如果我正确理解这一点,则每次更新时,机器人ID应增加1
如果需要,可以只进行一次更新,并确保t1.id始终为t2.id-96
...
WHERE t1.id = t2.id-96
如果您依赖于在一个过程中迭代多个更新,那么可以使用变量,您可以对变量进行限制。例如:
set @id1 = 1;
set @id2 = 97;
while @id < 95 do
UPDATE live_client_production.measurement_attachment t1
INNER JOIN live_client_uk.measurement_attachment t2
ON t2.active = t1.active
SET t1.content = t2.content
where t1.id=97
AND t2.id=1;
set @id1 = @id1+1;
set @id2 = @id2+1;
end while;
set@id1=1;
设置@id2=97;
而@id<95
更新live_client_production.measurement_附件t1
内部连接实时客户端测量附件t2
在t2.active=t1.active上
设置t1.content=t2.content
其中t1.id=97
t2.id=1;
设置@id1=@id1+1;
设置@id2=@id2+1;
结束时;
执行此查询时出错错误代码:1064。您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以获得正确的语法,以便在第1行的“while@id<95 do UPDATE live_client_production.measurement_attachment t1”中使用。您必须在一个过程中运行此操作。它不能作为独立脚本工作。
set @id1 = 1;
set @id2 = 97;
while @id < 95 do
UPDATE live_client_production.measurement_attachment t1
INNER JOIN live_client_uk.measurement_attachment t2
ON t2.active = t1.active
SET t1.content = t2.content
where t1.id=97
AND t2.id=1;
set @id1 = @id1+1;
set @id2 = @id2+1;
end while;