北京SEO

Mysql删除多表及多表记录sql语句

2019/10/10/17:33:57  阅读:1673  来源:谷歌SEO算法  标签: SEO博客

本文章总结了同时删除多个数据表与同时删除多个数据表的关系数据的方法,有需要的朋友可参考一下.

批量删除多表

删除所有pre_前缀的表,代码如下:

  1. SELECTCONCAT('droptable',table_name,';')FROMinformation_schema.tableswhere
  2. information_schema.tables.TABLE_NAMELIKE'pre_%';

删除所有pre_前缀的表 并且 不删除pre_uc前缀的表,代码如下:

  1. SELECTCONCAT('droptable',table_name,';')FROMinformation_schema.tablesWHERE
  2. information_schema.tables.TABLE_NAMELIKE'pre_%'ANDinformation_schema.tables.TABLE_NAMENOTLIKE'pre_uc%';

将得到的结果复制下来,再重新执行.

删除多表同的数据:MySQL数据库中,如果需要多张表同时删除数据,应该怎么做呢?下面就将为您介绍MySQL中多表删除的方法,希望对您有所启迪.

1、从数据表t1中把那些id值在数据表t2里有匹配的记录全删除掉,代码如下:

DELETE t1 FROM t1,t2 WHERE t1.id=t2.id 或DELETE FROM t1 USING t1,t2 WHERE t1.id=t2.id

2、从数据表t1里在数据表t2里没有匹配的记录查找出来并删除掉,代码如下:

DELETE t1 FROM t1 LEFT JOIN T2 ON t1.id=t2.id WHERE t2.id IS NULL 或

DELETE FROM t1,USING t1 LEFT JOIN T2 ON t1.id=t2.id WHERE t2.id IS NULL

3、从两个表中找出相同记录的数据并把两个表中的数据都删除掉,代码如下:

DELETE t1,t2 from t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t1.id=25

注意此处的delete t1,t2 from 中的t1,t2不能是别名.

如,代码如下:

delete t1,t2 from table_name as t1 left join table2_name as t2 on t1.id=t2.id where table_name.id=25

在数据里面执行是错误的,MYSQL 版本不小于5.0在5.0中是可以的,上述语句改写成如下 代码:

delete table_name,table2_name from table_name as t1 left join table2_name as t2 on t1.id=t2.id where table_name.id=25

在数据里面执行是错误的,MYSQL 版本小于5.0在5.0中是可以的,删除表中多余的重复记录,只留有rowid最小的记录(单字段),代码如下:

  1. DeleteFrom
  2. Where字段1In(Select字段1FromGroupBy字段1HavingCount(字段1)>1)And
  3. RowidNotIn(SelectMin(Rowid)FromGroupBy字段1HavingCount(字段1)>1)--phpfensi.com

删除表中多余的重复记录,只留有rowid最小的记录(多个字段),代码如下:

  1. DeleteFrom表a
  2. Where(a.字段1,a.字段2)In(Select字段1,字段2FromGroupBy字段1,字段2HavingCount(*)>1)And
  3. RowidNotIn(SelectMin(Rowid)FromGroupBy字段1,字段2HavingCount(*)>1)--phpfensi.com

5.删除多于的重复记录(单个字段,多个字段),代码如下:

delete from table where id not in(select min(id)from table group by name)

或者:delete from table where id not in(select min(id)from table group by 字段1,字段2)

6.删除多余的重复记录(单个字段,多个字段),代码如下:

delete from table where id in ( select max(id) from table group by name having count(*)>1)

广告内容

Mysql删除多表及多表记录sql语句 Mysql删除多表及多表记录sql语句 Mysql删除多表及多表记录sql语句

相关阅读

热门评论

小浪SEO博客 小浪SEO博客

专注SEO优化思维、SEO技术的实战分享类博客~

总篇数183

精选文章

RMAN中catalog和nocatalog区别介绍 小技巧:为Linux下的文件分配多个权限 zimbra8.5.1安装第三方签名ssl证书的步骤 解决mysql不能远程连接数据库方法 windows服务器mysql增量备份批处理数据库 mysql中slow query log慢日志查询分析 JavaScript跨域问题总结 Linux下负载均衡软件LVS配置(VS/DR)教程 mysql中权限参数说明 MYSQL(错误1053)无法正常启动

SEO最新算法