m**p 发帖数: 7 | 1 linux+mysql
前台是网页,数据存在后台的DB,
CMS里有phpmyadmin和mySQL wizard。
我想批量修改网站中所有网页的某些文字和图片的超链接地址。
比如,某个超链接为:
http://aaa.com/cgi-bin/click.php?m=0001&n=0009
我想改为:
http://aaa.com/renew.php?m=0001
因为数据量太多,不可能手动一个个修改。
请问怎么用SQL语句一次性修改?
在网上查了下,似乎可以用update。
update cdb_posts set message=replace(message, 'http://aaa.com/cgi-bin/click.php?m=0001&n=0009', 'http://aaa.com/renew.php?m=0001');
平时数据库都是自动备份的,我基本不操作数据库。
心里没底,而且这些link中有特殊字符,不知道行不行?
请高手指点。谢谢! |
c*****d 发帖数: 6045 | 2 update语句没有问题
你如果怕有问题的话,可以做个备份
比如要操作cdb_posts表
先用create table cdb_posts_bck as select * from cdb_posts;
然后update cdb_posts 。。。
如果有问题,可以
truncate table cdb_posts;
insert into cdb_posts select * from cdb_posts_bck;
【在 m**p 的大作中提到】 : linux+mysql : 前台是网页,数据存在后台的DB, : CMS里有phpmyadmin和mySQL wizard。 : 我想批量修改网站中所有网页的某些文字和图片的超链接地址。 : 比如,某个超链接为: : http://aaa.com/cgi-bin/click.php?m=0001&n=0009 : 我想改为: : http://aaa.com/renew.php?m=0001 : 因为数据量太多,不可能手动一个个修改。 : 请问怎么用SQL语句一次性修改?
|
m**p 发帖数: 7 | 3 thanks a lot!
我平时备份数据库都是在CMS里面用它提供的backups功能。
没有用sql直接操作db。一般备份完有两个文件:
1) 网站根目录下面的所有东西,包括文字图片上载等等,生成一个tar.gz文件。
2) 一个sql.gz文件,应该是页面关系,链接等的db文件。
第1个文件很大。而第2个文件很小。我现在要修改的应该是第2个文件,对吗?
我用CMS提供的备份可以吗?
另外,还有一个语句是
UPDATE wp_posts SET post_content = replace(post_content, 'old', 'new');
到底用哪个?如果我不想查找具体那些表包含超链接,
来个全库替换,怎么写呢?
10年前学的DB,现在早忘光光了。唉
【在 c*****d 的大作中提到】 : update语句没有问题 : 你如果怕有问题的话,可以做个备份 : 比如要操作cdb_posts表 : 先用create table cdb_posts_bck as select * from cdb_posts; : 然后update cdb_posts 。。。 : 如果有问题,可以 : truncate table cdb_posts; : insert into cdb_posts select * from cdb_posts_bck;
|
c*****d 发帖数: 6045 | 4 CMS能备份,不能run sql语句吧
这两个都不能改,因为他们都是备份,不是当前网站的内容
【在 m**p 的大作中提到】 : thanks a lot! : 我平时备份数据库都是在CMS里面用它提供的backups功能。 : 没有用sql直接操作db。一般备份完有两个文件: : 1) 网站根目录下面的所有东西,包括文字图片上载等等,生成一个tar.gz文件。 : 2) 一个sql.gz文件,应该是页面关系,链接等的db文件。 : 第1个文件很大。而第2个文件很小。我现在要修改的应该是第2个文件,对吗? : 我用CMS提供的备份可以吗? : 另外,还有一个语句是 : UPDATE wp_posts SET post_content = replace(post_content, 'old', 'new'); : 到底用哪个?如果我不想查找具体那些表包含超链接,
|
y*****g 发帖数: 677 | 5 如果你的 new and old 都是很长的字符串,很unqiue, 我觉得替换没有问题。
要不然,不该替换的全替换了。 |
m**p 发帖数: 7 | 6 可能我没说清楚,我的意思是做修改前要先备份,
而备份的方法可以用CMS提供的一键操作,简单。
修改是要run sql语句。
已经改完了。开始被一个&弄的生不如死,
后来才琢磨出要用&代替转义符,ft!
thanks again!
【在 c*****d 的大作中提到】 : CMS能备份,不能run sql语句吧 : 这两个都不能改,因为他们都是备份,不是当前网站的内容
|
m**p 发帖数: 7 | 7 是很长的unique的字符串,
要是让我把ab换成bc之类的,那我直接跳楼了 %$^%$#
【在 y*****g 的大作中提到】 : 如果你的 new and old 都是很长的字符串,很unqiue, 我觉得替换没有问题。 : 要不然,不该替换的全替换了。
|