REPLACE()的MySQL字符串引用

时间:2015-06-09 11:08:28

标签: mysql sql string replace

我在使用特定数据的REPLACE()函数时遇到问题。它不匹配应该替换的字符串出现。

我要替换的字符串如下。

  

S:54:“教义\共同\类别\ ArrayCollection_elements

它存储在以下字段

Rails 4

这是LIKE请求,它匹配包含字符串的所有行(在字符串上注意`definitions` longtext COLLATE utf8_unicode_ci NOT NULL COMMENT '(DC2Type:object)', ):

\0

在我运行以下请求的同时,我收到“0行受影响”消息,并且没有替换任何内容:

SELECT `definitions` 
FROM `entity_type` 
WHERE `definitions` LIKE '%s:54:"\0Doctrine\\\\Common\\\\Collections\\\\ArrayCollection\0_elements%'

我应该如何修改字符串以使REPLACE()与我需要的文本匹配并替换它?

PS:请不要因为我想要替换的东西而责怪我。这不是我的错: - )

1 个答案:

答案 0 :(得分:0)

如果您的“where condition”有效,您可以尝试:

UPDATE `entity_type`
    SET `definitions` = REPLACE(REPLACE(
        `definitions`, 
        's:54:', 
        's:53:'),'ArrayCollection_elements','ArrayCollectionelements')
where `definitions` LIKE '%s:54:"\0Doctrine\\\\Common\\\\Collections\\\\ArrayCollection\0_elements%';