Mysql 带有2个分隔符的子字符串索引
我有两种不同类型的项目代码。它由两部分组成,Mysql 带有2个分隔符的子字符串索引,mysql,substring,Mysql,Substring,我有两种不同类型的项目代码。它由两部分组成,[companycode]-[itemcode]。下面是一个例子: 答:0888-DIA172966616 B:0888-PMA516998-2200000M 我只想对它的[itemcode]部分进行子串,因此我使用 SUBSTRING_INDEX(ItemCode, '-', -1) 它适用于项目代码Adia17296616,但对于B,它只给出第二个“-”的值,所以它只是2200000M。如何获取B的完整项目代码?子字符串_INDEX()仅在需要前
[companycode]-[itemcode]
。下面是一个例子:
答:0888-DIA172966616
B:0888-PMA516998-2200000M
我只想对它的[itemcode]
部分进行子串,因此我使用
SUBSTRING_INDEX(ItemCode, '-', -1)
它适用于项目代码Adia17296616
,但对于B,它只给出第二个“-”的值,所以它只是2200000M
。如何获取B的完整项目代码?子字符串_INDEX()
仅在需要前N个或最后N个分隔字符串时才有用,不能直接用于“除前N个以外的所有字符串”
不要使用SUBSTRING\u INDEX()
为此,请使用SUBSTR()
和LOCATE()
LOCATE(ItemCode'-')
返回第一个-
的位置,SUBSTR()
然后返回其后的所有内容<代码>+1使其也跳过-
。如何获取B的完整项目代码?不清楚的。你需要PMA516998-2200000M
还是PMA516998-2200000M
?@Akina我需要PMA516998-2200000M
不仅PMA516998-2200000M
我仍然得到0888-PMA516998-2200000M
这个查询虚拟机,你得到了它,但是在LOCATE
中应该是LOCATE('',,ItemCode)
。非常感谢,伙计。
SUBSTR(ItemCode, LOCATE('-', ItemCode)+1)