本文主要是介绍MySQL连表更新和删除的差别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、连表更新和删除
可以使用其他表(或一个查询视图)更新、删除本表,单要注意表连接更新和表连接删除时使用方式的差距
- CREATE TABLE `test1` (
- `id` int(11) NOT NULL,
- `name` varchar(16) DEFAULT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
- create table test2 like test1;
- -- 根据test2更新test1的name列,条件是id相同
- -- 表连接
- update test1 a inner JOIN test2 b on a.id=b.id set a.name=b.name ;
- update test1 a , test2 b set a.name=b.name where a.id=b.id ;
- -- 删除test1表中id和test2表中id重复的
- -- 表连接
- delete a from test1 a inner JOIN test2 b on a.id=b.id ;
- -- 子查询
- delete from test1 where exists (select 1 from test2 where test1.id=test2.id);
- delete a from test1 a where exists (select 1 from test2 where test1.id=test2.id);
2、like性能
cola like 'mysql%' 为了提高速度,可以改成 cola>='mysql' and cola<mysqm
3、其他
insert delete 操作是不允许使用表别名的。
update where条件中不允许自连接
update test set id=1 where pid in(select id from test where pid=12); 是不允许的,可以使用临时表解决。
这篇关于MySQL连表更新和删除的差别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!