MySQL将一个表的查询结果作为本表的查询条件更新数据

先建一张人口统计信息表:

drop table if exists 人口统计信息;

/*==============================================================*/
/* Table: 人口统计信息                                             */
/*==============================================================*/
create table 人口统计信息 
(
   行政区域ID               varchar(100)                   not null,
   总人口                  varchar(100)                   null,
   0_6岁                 varchar(100)                   null,
   7_17岁                varchar(100)                   null,
   18_40岁               varchar(100)                   null,
   41_65岁               varchar(100)                   null,
   66_84岁               varchar(100)                   null,
   85岁以上                varchar(100)                   null,
   constraint PK_人口统计信息 primary key clustered (行政区域ID)
);

然后,通过下面的SQL做事情:

update `人口统计信息` t1 set t1.`0_6岁`= CEILING(t1.`总人口` * 0.09)
where t1.行政区域ID in (select t2.行政区域ID from (select `行政区域ID` from `人口统计信息`) t2);

转载请备明出处:洪荒少男~

原文地址:https://www.cnblogs.com/sirxy/p/11808194.html