通常我使用手动查找替换文本在MySQL数据库使用phpMyAdmin。我现在厌倦了,我怎么能运行一个查询,在phpMyAdmin的整个表中找到和替换一个新的文本?
例如:查找关键字domain。例如,替换为www.domain.example。
通常我使用手动查找替换文本在MySQL数据库使用phpMyAdmin。我现在厌倦了,我怎么能运行一个查询,在phpMyAdmin的整个表中找到和替换一个新的文本?
例如:查找关键字domain。例如,替换为www.domain.example。
当前回答
UPDATE `MySQL_Table`
SET `MySQL_Table_Column` = REPLACE(`MySQL_Table_Column`, 'oldString', 'newString')
WHERE `MySQL_Table_Column` LIKE 'oldString%';
其他回答
我发现的最简单的方法是将数据库转储到一个文本文件中,运行sed命令进行替换,然后将数据库重新加载回MySQL。
下面所有命令都是Linux下的bash命令。
转储数据库到文本文件
mysqldump -u user -p databasename > ./db.sql
执行sed命令查找/替换目标字符串
sed -i 's/oldString/newString/g' ./db.sql
重新加载数据库到MySQL
mysql -u user -p databasename < ./db.sql
容易peasy。
对于单个表更新
UPDATE `table_name`
SET `field_name` = replace(same_field_name, 'unwanted_text', 'wanted_text')
从多个表-
如果您希望从所有表中进行编辑,最好的方法是获取转储,然后查找/替换并上传回来。
phpMyAdmin包含一个简洁的查找和替换工具。
选择表,然后点击Search > Find and replace
这个查询花费了大约一分钟的时间,成功地替换了几千个oldurl实例。用新url进行扩展。列post_content中的ext
这个方法最棒的地方是:你可以在提交之前检查每个匹配。
注意:我使用phpMyAdmin 4.9.0.1
在phpMyAdmin中运行SQL查询来查找和替换所有WordPress博客文章中的文本,例如查找mysite。Example /wordpress,然后用mysite。Example /news替换 本例中的表为tj_posts
UPDATE `tj_posts`
SET `post_content` = replace(post_content, 'mysite.example/wordpress', 'mysite.example/news')
最好你把它导出为SQL文件,用visual studio代码等编辑器打开,然后找到并重新排版你的文字。 我在1分钟内替换1gig文件SQL 16个字,总共是14600个字。 这是最好的办法。 替换后保存并再次导入。 不要忘记压缩它与zip导入。