gpt4 book ai didi

php - MySQL:返回特定定界符和下一个非唯一定界符之间的 SUBSTR

转载 作者:行者123 更新时间:2023-11-30 22:37:34 25 4
gpt4 key购买 nike

我试图在两个分隔符之间返回一个 SUBSTR。问题是,第二个定界符在整个字符串中不是唯一的。

例子:

testurl.de/some:text/&[uniquedelimiter]=texttoextract:sometext:someothertext

所以我想提取唯一分隔符之后的“&[uniquedelimiter]=”和next“:”之间的字符串。字符串中“:”的出现是可变的。

现在我正在使用双重 SUBSTRING_INDEX 函数,但如果字符串包含多个“:”,我会出错。

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(list_of_urls, '&[uniquedelimiter]=',-1),':')
FROM url_table;

我在任何社区都找不到类似的解决方案。

非常感谢您的帮助,拉斯

最佳答案

这似乎有效,也许你可以对它进行排序,不确定:

SELECT
SUBSTRING(
url,
(POSITION('&[uniquedelimiter]=' IN url) + LENGTH('&[uniquedelimiter]=')),
LOCATE(':', url, (POSITION('&[uniquedelimiter]=' IN url) + LENGTH('&[uniquedelimiter]='))) -
(POSITION('&[uniquedelimiter]=' IN url) + LENGTH('&[uniquedelimiter]='))
)
from bla

我的策略是这样的:

SET @url                   = (SELECT url from bla limit 1);
SET @pos_uniq_deli_start = POSITION('&[uniquedelimiter]=' IN @url);
SET @uniq_deli_length = LENGTH('&[uniquedelimiter]=');
SET @pos_uniq_deli_end = @pos_uniq_deli_start + @uniq_deli_length;
-- LOCATE(char, field, offset)
SET @pos_colon_after_deli = LOCATE(':', @url, @pos_uniq_deli_end);
SET @delta_unqi_del_colon = @pos_colon_after_deli - @pos_uniq_deli_end;

-- SUBSTRING(field, start_pos, length)
SET @result = SUBSTRING(@url,@pos_uniq_deli_end, @delta_unqi_del_colon);
SELECT @result;

关于php - MySQL:返回特定定界符和下一个非唯一定界符之间的 SUBSTR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32052762/

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