繁体   English   中英

带有 2 个分隔符的 SUBSTRING_INDEX

[英]SUBSTRING_INDEX with 2 delimiters

我有 2 种不同类型的项目代码。 它由两部分组成, [companycode]-[itemcode] 下面是示例:

A: 0888-DIA172966616 B: 0888-PMA516998-2200000M

我只想 substring 的[itemcode]部分所以我使用

SUBSTRING_INDEX(ItemCode, '-', -1)

它适用于 A 项目代码DIA172966616 ,但对于 B,它只给我第二个“-”的值,所以它只是2200000M 如何获得 B 的完整项目代码?

SUBTRING_INDEX()仅在您想要前 N 或最后 N 分隔字符串时才有用,您不能直接将其用于“除前 N 之外的所有字符串”。

不要为此使用SUBSTRING_INDEX() ,使用SUBSTR()LOCATE()

SUBSTR(ItemCode, LOCATE('-', ItemCode)+1)

LOCATE(ItemCode, '-')返回第一个-的 position ,然后SUBSTR()返回之后的所有内容。 +1也使它跳过-

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM