mysql中查和替换_使⽤MySQL查询查和替换整个表中的
⽂本
回答(9)
2 years ago
对于 single table 更新
UPDATE `table_name`
SET `field_name` = replace(same_field_name, 'unwanted_text', 'wanted_text')
来⾃ multiple tables -
如果要从所有表中进⾏编辑,最好的⽅法是采⽤ dump 然后 find/replace 并将其上传回来 .
2 years ago
我发现最简单的⽅法是将数据库转储到⽂本⽂件,运⾏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
⼗分简单 .
2 years ago
把它放在⼀个php⽂件中并运⾏它,它应该做你想要它做的事情 .
// Connect to your MySQL database.
$hostname = "localhost";
$username = "db_username";
$password = "db_password";
$database = "db_name";
mysql_connect($hostname, $username, $password);
// The find and replace strings.
$find = "find_this_text";
$replace = "replace_with_this_text";
$loop = mysql_query("
SELECT
concat('UPDATE ',table_schema,'.',table_name, ' SET ',column_name, '=replace(',column_name,', ''{$find}'', ''{$replace}'');') AS s
FROM
lumns
WHERE
table_schema = '{$database}'")
or die ('Cant loop through dbfields: ' . mysql_error());
while ($query = mysql_fetch_assoc($loop))
{
mysql_query($query['s']);
}
2 years ago
在PHPmyadmin中运⾏SQL查询以查和替换所有wordpress博客帖⼦中的⽂本,例如查mysite/wordpress并将其替换为mysite/news此⽰例中的表格为tj_posts
UPDATE `tj_posts`
SET `post_content` = replace(post_content, 'mysite/wordpress', 'mysite/news')
2 years ago
UPDATE table SET field = replace(field, text_needs_to_be_replaced, text_required);
例如,如果我想⽤Mark替换所有出现的John,我会在下⾯使⽤,
UPDATE student SET student_name = replace(student_name, 'John', 'Mark');
2 years ago
另⼀种选择是为数据库中的每个列⽣成语句:
SELECT CONCAT(
'update ', table_name ,
' set ', column_name, ' = replace(', column_name,', ''www.oldDomain'', ''wDomain'');'
) AS statement
FROM lumns
WHERE table_schema = 'mySchema' AND table_name LIKE 'yourPrefix_%';
这应该⽣成⼀个可以执⾏的更新语句列表 .sql语句替换表中内容
2 years ago
我相信“swapnesh”的答案是最好的!不幸的是我⽆法在phpMyAdmin(4.5.0.2)中执⾏它,虽然它不合逻辑(并尝试了⼏件事)但它仍然说发现了⼀个新的声明并且没有到分隔符......
因此,我提出了以下解决⽅案,如果您考虑到相同的问题并且没有其他数据库访问PMA,那么这可能是有⽤的...
UPDATE `wp_posts` AS `toUpdate`,
(SELECT `ID`,REPLACE(`guid`,'old.tld','new.tld') AS `guid`
FROM `wp_posts` WHERE `guid` LIKE 'old.tld%') AS `updated`
SET `toUpdate`.`guid`=`updated`.`guid`
WHERE `toUpdate`.`ID`=`updated`.`ID`;
要测试您可能想要使⽤的预期结果:
SELECT `toUpdate`.`guid` AS `old guid`,`updated`.`guid` AS `new guid`
FROM `wp_posts` AS `toUpdate`,
(SELECT `ID`,REPLACE(`guid`,'old.tld','new.tld') AS `guid`
FROM `wp_posts` WHERE `guid` LIKE 'old.tld%') AS `updated`
WHERE `toUpdate`.`ID`=`updated`.`ID`;
2 years ago
⽣成更改SQL查询(FAST)
mysql -e“SELECT CONCAT('update',table_name,'set',column_name,'=
replace(',column_name,','''www.oldsite'','''wsite''); ')AS语句FROM lumns WHERE table_name LIKE'wp_%'“ - u root -p your_db_name_here> upgrade_script.sql
删除⽂件开头的所有垃圾 . 我有⼀些 .
nano upgrade_script.sql
使⽤--force选项运⾏⽣成的脚本以跳过错误 . (慢 - 如果⼤DB那就拿⼀杯咖啡)
mysql -u root -p your_db_name_here --force
2 years ago
最好将它导出为sql⽂件,然后使⽤visual studio代码等编辑器打开它,到并修复你的单词 . 我在1分钟内替换1 gig⽂件sql 16个单词,总共是14600个单词 . 这是最好的⽅式 . 并在更换后保存并再次导⼊ . 别忘了⽤拉链压缩它以便导⼊ .
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论