【问题标题】:mysql replace returns a NULL value for a longtext columnmysql replace为长文本列返回NULL值
【发布时间】:2019-05-05 01:18:24
【问题描述】:

我有一列类型为长文本 (contenu_fr) 并包含一些长文本(每行 >600Kb),当我使用替换函数时它返回 null。

select  REPLACE(contenu_fr, '<p>', '+') rr, contenu_fr
from `jo_article` where id=28200

这怎么可能,知道如果原始值不为 null,replace 永远不会返回 null。

列内容加密 https://gist.githubusercontent.com/seddik/3993e28d7a541bc500c15d047ab0f78d/raw/687361cf7ee4f9e310c29354281584e99056f4c2/sql%2520replace

屏幕截图结果


【问题讨论】:

  • 1) 邮政编码,而不是代码图片。 2) id 存在吗?
  • @WillardSolutions id 当然存在,它正在返回一个值!
  • 只是放弃IDE中的问题,您可以使用其他MySQL客户端重现该问题,例如官方命令行实用程序吗?
  • @seddik 当然,我建议您阅读此内容,然后再次尝试您的问题:stackoverflow.com/help/mcve
  • @ÁlvaroGonzález 我添加了一些屏幕截图,这不是 IDE 问题,因为我的 php 代码也返回 null。

标签: mysql


【解决方案1】:

我尝试复制您的内容(HTML 字符串)并复制粘贴您的查询。 REPLACE() 正在按预期工作。我用的是 MySQL 5.6。

这里是小提琴:http://sqlfiddle.com/#!9/eccb4a/1

你能在那里测试你的查询吗?

【讨论】:

  • 我无法让它工作,这是一个关于 (100Ko) 的长字符串,sqlfiddle 返回错误
  • 这里是我的专栏内容gist.githubusercontent.com/seddik/…
  • 我截断了您的样本,但 REPLACE 函数返回一个字符串,而不是 NULL。在您的示例中,您第一次使用了列名 contenu_fr,第二次使用了 contenu。这是一个错字还是两者都有效?
  • 是的,这两个都是有效的,当我添加屏幕截图时,我错误地使用了另一个表,但两者都存在
猜你喜欢
  • 1970-01-01
  • 2015-01-07
  • 1970-01-01
  • 1970-01-01
  • 2014-12-29
  • 1970-01-01
  • 2016-12-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多