在mysql中获取字符串的一部分

时间:2014-10-10 13:43:01

标签: mysql sql string

我需要在MySQL中获取字符串的一部分,将其放在触发器中,其中字符串的这一部分是另一个表的键,并将用作外键

字符串如下所示:P####PR####其中#是一个数字,在' PR'之后这些数字是我需要保存的另一个表的ID,但是...数字部分的大小是可变的,如

P1PR20
P20PR321
P4321PR54321
P1PR1 

我需要删除此字符串的所有字符才能执行最后一个数字部分

P1PR20        -> 20
P20PR321      -> 321
P4321PR54321  -> 54321
P1PR1         -> 1
请问,有什么建议吗?

1 个答案:

答案 0 :(得分:8)

我想你有一个模式P #### PR ####(正如你在你的问题中所说的那样),所以

试试这个:

SELECT SUBSTRING(field, INSTR(field, 'PR') + 2, 100)
FROM dual

修改

INSTR(field, 'PR')< - 获取PR首次出现的索引。在你的情况下:

如果你有:

P1PR20函数的值为3

P20PR321函数的值为4.

我加2,因为我必须在PR之后定位第一个字符。

在第一种情况下:

你有SUBSTRING(字段,3 + 2,100) - > 20

在第二种情况下:

你有SUBSTRING(字段,4 + 2,100) - > 321

100是一般偏移量