一次替换所有表中的SQL字符串

时间:2013-07-15 15:47:43

标签: sql replace phpmyadmin

我的目标是将www添加到地址中,同时在所有表格中将http://mywebsite.org替换为http://www.mywebsite.org

我尝试过以下操作,但似乎无效:

SELECT Replace('http://mywebsite.org', 'mywebsite.org', 'www.mywebsite.org')

任何帮助?

新编辑:

我尝试在wp_option中更改它,它是一个option_value字符串:

UPDATE wp_options SET option_value = 'http://www.iemj.org' WHERE option_value = 'http://iemj.org'  

- 没有改变

 a:4:{s:25:"dashboard_recent_comments";a:1:{s:5:"items";i:5;}s:24:"dashboard_incoming_links";a:5:{s:4:"home";s:19:"http://www.iemj.org";s:4:"link";s:95:"http://blogsearch.google.com/blogsearch?scoring=d&partner=wordpress&q=link:http://www.iemj.org/";s:3:"url";s:124:"http://blogsearch.google.com/blogsearch_feeds?scoring=d&ie=utf-8&num=10&output=rss&partner=wordpress&q=link:http://iemj.org/";s:5:"items";i:10;s:9:"show_date";b:0;}s:17:"dashboard_primary";a:7:{s:4:"link";s:26:"http://wordpress.org/news/";s:3:"url";s:31:"http://wordpress.org/news/feed/";s:5:"title";s:14:"WordPress Blog";s:5:"items";i:2;s:12:"show_summary";i:1;s:11:"show_author";i:0;s:9:"show_date";i:1;}s:19:"dashboard_secondary";a:7:{s:4:"link";s:28:"http://planet.wordpress.org/";s:3:"url";s:33:"http://planet.wordpress.org/feed/";s:5:"title";s:20:"Other WordPress News";s:5:"items";i:5;s:12:"show_summary";i:0;s:11:"show_author";i:0;s:9:"show_date";i:0;}}

2 个答案:

答案 0 :(得分:1)

必须在Update语句中才能更改数据集。

如果它应该是单数;

UPDATE <table_name> SET <field_name>='http://www.mywebsite.org' WHERE <field_name> = 'http://mywebsite.org'

批量更改以在'http://'之后添加'www';

请在执行此操作之前备份,尤其是依赖此数据集

 UPDATE <table_name> SET <field_name>=Replace(<field_name>, replace(<field_name>, 'http://', ''), 'www.'+replace(<field_name>, 'http://', '')) WHERE <field_name> LIKE 'http://%'

Source

答案 1 :(得分:0)

SELECT是用于从SQL返回信息的命令。您正在寻求更新信息。您还没有指定信息是FROM的表或它存储在哪个列中。例如

UPDATE tablename
SET columnname = REPLACE(columnname, 'http://mywebsite.org', 'http://www.mywebsite.org')

我建议您在以这种方式玩游戏之前备份数据库。