0

我在表 A 中有一个链接(如下所示)字段,其值如下:

我需要从链接中提取 7 位代码。编码:

1 - 始终是不包含字符的 7 位数字。

2 - 总是包含'/carrier/'并远离 1 节'/carrier/'

在上面的链接中,代码是 2360283 和 4322830。

请使用 建议选择查询RegExp

谢谢,

4

2 回答 2

0

假设您不知道carrier“7位代码”将出现在哪里,那么您将不得不计算/carrier/位置并使用相对位置,但只能在模式的相关行上

小提琴

select 
    substring_index(substring_index(link,
                '/',
                find_in_set('carrier',
                        replace(replace(link, ',', '{'), /* { is any weird character */
                            '/',
                            ',')) + 2), /*  +2 => 1 section away from carrier */
        '/',
        - 1)  as SEVENDIGITCODE
from 
    TableA
where
    link regexp '/carrier.*/[0-9]{7}/'
于 2013-05-13T05:27:38.557 回答
0

尝试

$str = 'http://test.abc.com/carrier/CA-9265/2360283/?id=41352626&src=j2w&...';  
SELECT SUBSTRING_INDEX( SUBSTRING_INDEX($str,'/',-2),'/',1)
// return 2360283

阅读SUBSTRING_INDEX了解更多信息

于 2013-05-13T04:48:57.357 回答