首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >替换LONGTEXT MySQL中的字符串

替换LONGTEXT MySQL中的字符串
EN

Stack Overflow用户
提问于 2018-03-06 06:08:04
回答 1查看 1.3K关注 0票数 0

我正在尝试更新一些新的数据库中的图像。我已经阅读了使用这个SQL查询:

代码语言:javascript
复制
UPDATE blogs SET body = REPLACE(body, 'http://www.OLDSITE.com/wp-content/uploads/', 'https://NEWSITE.nyc3.digitaloceanspaces.com/old-wordpress/');

但这并没有什么作用。

我运行这个查询只是为了确保它能找到我需要的东西

代码语言:javascript
复制
SELECT REPLACE(body, 'http://www.OLDSITE.com/wp-content/uploads/', 'https://NEWSITE.nyc3.digitaloceanspaces.com/old-wordpress/') from blogs

这就满足了我的需要。我是不是在UPDATE中遗漏了什么

示例数据:

body内的blogs条目中

代码语言:javascript
复制
<a href="http://www.OLDSITE.com/wp-content/uploads/2014/09/beforeandaftercollage2.jpeg"><img class="alignnone size-medium wp-image-9089" alt="beforeandaftercollage2" src="http://www.OLDSITE.com/wp-content/uploads/2014/09/beforeandaftercollage2-231x300.jpeg" width="231" height="300" /></a>
EN

回答 1

Stack Overflow用户

发布于 2018-03-06 06:54:51

您可能达到了事务日志的最高值-即所有之前和之后的值的总数据量超过了单个事务所允许的最大值,特别是因为数据类型LONGTEXT建议了大量数据。

对区块进行更新。幸运的是,MySQL有一个非常方便的特性可以做到这一点:

代码语言:javascript
复制
UPDATE blogs SET
body = REPLACE(body, 'http://www.OLDSITE.com/wp-content/uploads/', 'https://NEWSITE.nyc3.digitaloceanspaces.com/old-wordpress/')
WHERE body like '%www.OLDSITE.com%'
LIMIT 1000

诀窍是LIMIT 1000,它在更新1000行之后停止查询。如果更新仍然大大增加日志大小,您可能需要调低1000的数量,或者为方便起见调高数量。

您可能不需要WHERE子句,但是我没有现成的MySQL实例来测试它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49120309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档