我在表A中有一个链接(如下所示)字段,其值如下:
我需要从链接中提取7位数代码。代码:
1 - 总是7位不包含字符。
2 - 始终包含'/carrier/'
,距离'/carrier/'
1个部分。
在上面的链接中,代码是2360283和4322830。
请使用RegExp
建议选择查询。
谢谢,
答案 0 :(得分:0)
TRY
$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了解更多
答案 1 :(得分: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}/'