怎么替换数据库中所有表中的数据?

怎么替换数据库中所有表中的数据?,第1张

1.理论上没可能一次性实现;

2.实际上很多朋友都会碰到这种需求,怎么解决呢?

1)把所有表的结构和数据导出为文本的.sql文件,用文本编辑软件word或者dw等都可以,用替换方法把字符a替换为b,但这有可能误 *** 作,所以要慎重查看;

2)替换完以后,再利用mysql数据管理软件,把sql文件导入到新的数据库中,进行严格测试,通过后;把旧版数据备份(主要为了安全着想),然后导入新的数据即可完成所需 *** 作;

提供两个办法;

第一个是,笨办法,查找每个字段,看有单位的名称就修改一下。

第二个是,如果数据库数据量不大的话,可以使用mysqldump将数据导出到一个文本文件,然后使用文本文件的替换功能,将单位名称替换成正确的,然后再将数据导入数据库。

当然,也可以两个联合使用,比如先使用第二个方法中的mysqldump将数据导出,然后查找单位名称,看一共有多少处需要修改,然后再使用第一个方法中的update语句将字段值更新成新的单位名称。

不同的数据库,替换字段值的命令格式是不同的,现以MYSLQ 为例说明:

在数据库中修改一些内容,就需要用到下列语句:

sql语句为:UPDATE `table_name` SET `field_name` = replace (`field_name`,’from_str’,'to_str’) WHERE ……

代码说明: table_name —— 表的名字 field_name —— 字段名 from_str —— 需要替换的字符串 to_str —— 替换成的字符串 目的是为了直接用sql *** 作数据库修改字段中的某些字串,也可以使用下列方法有条件的替换,比较麻烦,需要三步,先SELECT出来符合的记录,然后进行字符串替换,再UPDATE。

假如我要替换的内容是:把’家 乐 福’字符替换成’Jia Le Fu’ 要替换的内容在:数据表 cdb_posts中的message 字段。那我们就应该这样写:

update dede_addonarticle set body=replace(body, ‘家乐福’, ‘Jia Le Fu’)

如果是在自编的程序中替换,用循环加赋值语句就行,当然,也可以直接使用用SQL命令来实现,就看你个人喜好了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6739032.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存