gpt4 book ai didi

mysql - SQL - 来自 [剧透 :abcdefgh] to [spoiler]

转载 作者:行者123 更新时间:2023-11-30 23:18:17 26 4
gpt4 key购买 nike

我在很多记录中都有这个字符串 [spoiler:abcdefgh]abcdefgh 是可变字符。我希望它成为 [剧透]。所以我想删除 :abcdefgh

我知道查询是:

UPDATE post 
SET pagetext = replace(pagetext, ‘text you want to replace’, ‘replacament text’);

如何替换可变字符?

例如,如果我有 [center:uezfbb79]texttt[/center:uezfbb79] 那么我希望它变成:[center]texttt[/center]

“uezfbb79”不是固定的,这些是随机字符。

最佳答案

假设所有标签的格式都正确,下面的代码应该可以解决问题。请在针对生产副本运行之前彻底测试。

UPDATE post
SET pagetext = REPLACE(pagetext, SUBSTR(pagetext, INSTR(pagetext,':'), INSTR(pagetext, ']') - INSTR(pagetext,':')), '')
WHERE pagetext LIKE '[%:%]';

这是 SQL Fiddle 我用于非常 有限的测试。

编辑

此脚本应正确处理前面的[] 情况:

UPDATE post
SET pagetext = REPLACE(pagetext, SUBSTR(pagetext, @c1:=INSTR(pagetext,':'), LOCATE(']', pagetext, @c1) - @c1), '')
WHERE pagetext LIKE '[%:%]';

Updated Fiddle

编辑#2

我的 WHERE 子句过于严格。这是一个稍微更新的脚本:

UPDATE post
SET pagetext = REPLACE(pagetext, SUBSTR(pagetext, @c1:=INSTR(pagetext,':'), LOCATE(']', pagetext, @c1) - @c1), '')
WHERE pagetext LIKE '%[%:%]%';

我改变了 Fiddle 更新另一列(newtext),因此更容易判断结果。

关于mysql - SQL - 来自 [剧透 :abcdefgh] to [spoiler],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16626618/

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