通常我使用手动查找替换文本在MySQL数据库使用phpMyAdmin。我现在厌倦了,我怎么能运行一个查询,在phpMyAdmin的整个表中找到和替换一个新的文本?
例如:查找关键字domain。例如,替换为www.domain.example。
通常我使用手动查找替换文本在MySQL数据库使用phpMyAdmin。我现在厌倦了,我怎么能运行一个查询,在phpMyAdmin的整个表中找到和替换一个新的文本?
例如:查找关键字domain。例如,替换为www.domain.example。
当前回答
当在phpmyadmin中进行搜索和替换时,我有很好的运气:
更新表名SET fieldName1 = 'foo' WHERE fieldName1 = 'bar';
当然,这一次只适用于一个表。
其他回答
生成变更SQL查询(FAST)
mysql -e "SELECT CONCAT('update ', table_name,' set ', column_name,' = replace(', column_name,', " www.oldsite.example ", " www.newsite.example ");') AS语句FROM information_schema。-u root -p your_db_name_here > upgrade_script.sql . WHERE table_name LIKE 'wp_%'
删除文件开头的任何垃圾。我吃了一些。
纳米upgrade_script.sql
使用——force选项运行生成的脚本以跳过错误。(慢速-如果DB大,可以喝杯咖啡)
Mysql -u root -p your_db_name_here——force < upgrade_script.sql
对于单个表更新
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')
UPDATE `MySQL_Table`
SET `MySQL_Table_Column` = REPLACE(`MySQL_Table_Column`, 'oldString', 'newString')
WHERE `MySQL_Table_Column` LIKE 'oldString%';