gpt4 book ai didi

mysql - 替换列中给定的字符串出现位置

转载 作者:行者123 更新时间:2023-11-29 07:01:50 24 4
gpt4 key购买 nike

我有一个这样的专栏:

vars
-----------
|A|B|A|D|AB|B...

我想替换一个变量(例如:第三个位置的变量,恰好是 A),但保留任何其他 A。该位置由变量确定。所以我应该得到:

vars
-----------
|A|B|D|AB|B...

我知道我应该使用 REPLACE 和可能的 SUBSTRING_INDEX,但我不知道如何使用。这是我尝试过的:假设:pos=3;

vars = REPLACE(vars, (SUBSTRING_INDEX(SUBSTRING_INDEX(vars, '|', :pos), '|', -1)), '')

但这实际上替换了所有其他字符并保留了我需要替换的字符。

更新:请注意,我不知道要替换什么变量,只知道它的位置。

更新2:

vars = Concat(substring(vars ,1,:pos-1), substring(vars,:pos+2))

这可以解决问题,但我忘了提到变量并不总是 |A 和 |B 等,还包括 |AB、|AC...所以位置不应该总是移动一个字符,但直到下一个|

最佳答案

如果你知道位置号6是你的位置变量

SELECT  concat(SUBSTRING('|A|B|A|D|G|B',1,6-2),SUBSTRING('|A|B|A|D|G|B',6+1) )

或者如果您知道第二次出现的字符串

    SELECT REPLACE( '|A|B|A|D|G|B', concat( SUBSTRING_INDEX( '|A|B|A|D|G|B', 
'|A', 2 ) , "|A" ) , SUBSTRING_INDEX( '|A|B|A|D|G|B', '|A', 2 ) )

关于mysql - 替换列中给定的字符串出现位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43178277/

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