MySQL中批量前缀表的sql语句

1、批量删除前缀表sql语句

先查询生成需要操作的表

Select CONCAT( 'drop table ', table_name, ';' )

FROM information_schema.tables
Where table_name LIKE ''ngis20201201_%'';  /* "'ngis20201201_"为要删除的表前缀*/

执行此SQL语句后会生成一串SQL语句,必须再执行生成的这些SQL语句才能真正执行删除操作   

drop table ngis20201202_tx;
drop table ngis20201202_rx;
drop table ngis20201202_all;
drop table ngis20201202_all_link;
drop table ngis20201202_all_back;
drop table ngis20201202_all_red;
drop table ngis20201202_all_red_48_1;
drop table ngis20201202_all_red_48_5;
drop table ngis20201202_all_red_24_1;

 拷贝生成的结果进行操作

2、批量修改前缀表sql语句

先查询需要操作的表数据

Select CONCAT( 'ALTER TABLE ', table_name, 'RENAME TO ', table_name,';' )

FROM information_schema.tables

Where table_name LIKE 'dede_%';

执行此SQL语句,会生成如下语句:

ALTER TABLE de_aaa RENAME TO de_aaa;
ALTER TABLE de_bbb RENAME TO de_bbb;

  在编辑器中将“RENAME TO de”批量改为想设置的表前缀,再执行此SQL语句即可批量修改表名

 

3.update批量修改表中字段

sql替换语句,用该命令可以整批替换某字段的内容,也可以批量在原字段内容上加上或去掉字符。

命令总解:update 表的名称 set 此表要替换的字段名=REPLACE(此表要替换的字段名, '原来内容', '新内容')

如 UPDATE Whir_ProductRelese SET ReleseName=REPLACE(ReleseName,'http://www.maidq.com','http://maidq.com')

举例说明:

1)把backupfile表里url的字段内容里为http://www.maidq.com的字符全部改为http://maidq.com。

update backupfile set url=REPLACE(url,'http://www.maidq.com','http://maidq.com')

2)根据条件增加字段的内容,如把file_number=1的记录的logical_name字段的内容前面加上tmp,后面加上end。

update backupfile set logical_name=REPLACE(logical_name,logical_name,'tmp'+logical_name+' end 'where file_number=1

3)根据条件去掉指定记录的前面2个字符。

update backupfile set logical_name=REPLACE(logical_name,logical_name,SUBSTRING(logical_name,3,len(logical_name)-2)) where file_number=1

4)根据条件去掉指定记录的后面4个字符。

update backupfile set logical_name=REPLACE(logical_name,logical_name,SUBSTRING(logical_name,1,len(logical_name)-4)) where file_number=2

如有不清楚的可以先用select语句验证是否达成自己想要的效果再进行替换:

SELECT REPLACE(替换字段,'原内容','新内容'from 表名;
update 表名 set 替换字段=(REPLACE(替换字段,'原内容','新内容'))


 

posted @ 2020-12-03 11:25  lucky8492  阅读(553)  评论(0编辑  收藏  举报