gpt4 book ai didi

REPLACE() 的 MySQL 字符串引用

转载 作者:行者123 更新时间:2023-11-29 03:30:58 25 4
gpt4 key购买 nike

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

我要替换的字符串如下。

s:54:"Doctrine\Common\Collections\ArrayCollection_elements

它存储在以下字段中

`definitions` longtext COLLATE utf8_unicode_ci NOT NULL COMMENT '(DC2Type:object)',

这是匹配所有包含字符串的行的 LIKE 请求(注意字符串上的 \0):

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

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

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

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

PS:请不要因为我要替换的内容而责备我。这不是我的错:-)

最佳答案

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

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%';

关于REPLACE() 的 MySQL 字符串引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30730317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com