表结构1
create table a1(id int(1) not null primary key auto_increment,x1 varchar(122));insert into a1 values('1','a1');
insert into a1 values('2','a2');表结构2
create table a2(id int(1) not null primary key auto_increment,x1 varchar(122),x2 varchar(122));insert into a2 values('1','a1','a1');
insert into a2 values('2','a2','a2');
insert into a2 values('3','a2','a2');
insert into a2 values('4','a1','a1');
insert into a2 values('5','a2','a2');
insert into a2 values('6','a1','a1');现在执行这个SQL。将表a2中的字段x1的值换成表a1中x1字段值对应的idupdate a2 a2 set a2.x1 = (select a1.id from a1 a1 where a1.x1 =a2.x1)变成这个结果。1 1 a1
2 2 a2
3 2 a2
4 1 a1
5 2 a2
6 1 a1其中a2表中的数据是1000万,a1表中2000条记录。update a2 a2 set a2.x1 = (select a1.id from a1 a1 where a1.x1 =a2.x1)有没比这个更高效的SQL
create table a1(id int(1) not null primary key auto_increment,x1 varchar(122));insert into a1 values('1','a1');
insert into a1 values('2','a2');表结构2
create table a2(id int(1) not null primary key auto_increment,x1 varchar(122),x2 varchar(122));insert into a2 values('1','a1','a1');
insert into a2 values('2','a2','a2');
insert into a2 values('3','a2','a2');
insert into a2 values('4','a1','a1');
insert into a2 values('5','a2','a2');
insert into a2 values('6','a1','a1');现在执行这个SQL。将表a2中的字段x1的值换成表a1中x1字段值对应的idupdate a2 a2 set a2.x1 = (select a1.id from a1 a1 where a1.x1 =a2.x1)变成这个结果。1 1 a1
2 2 a2
3 2 a2
4 1 a1
5 2 a2
6 1 a1其中a2表中的数据是1000万,a1表中2000条记录。update a2 a2 set a2.x1 = (select a1.id from a1 a1 where a1.x1 =a2.x1)有没比这个更高效的SQL
解决方案 »
- mysql给视图的列增加备注,你试过了吗?
- 递归树的比较
- MYSQ ID前+1
- 我用ADO连接mysql 5.0,起初用ODBC3.51的驱动,连接正常,但是查询结果中文不显示;后用5.0的驱动,中文可以显示,但是连接速度极慢,请
- 在windows下面的一段 Mysql数据库自动备份的代码(附代码),有点疑问,请指点
- mysql 4.0 中 Union 该如何实现
- 求助:为什么我的Mysql数据库连不上?
- 如何查询某个字段相同的所有记录
- 【强烈推荐:】100兆jsp/php/cgi+50兆mysql空间=100元/年!!!
- query_cache_size和innodb_buffer_pool_size区别
- ,请问如何可以用一条语句查询失败率
- 急!如何恢复被drop的数据库
set a2.x1=a1.id
where a2.x1=a1.x1;a1.x1上加索引
有没更高效的写法。这个SQL