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

Mat*_*des 1 mysql sql string

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

字符串看起来像:P####PR####其中#是一个数字,在'PR'之后,数字是我需要保存的另一个表的ID,但是...数字部分的大小是变量的

P1PR20
P20PR321
P4321PR54321
P1PR1 
Run Code Online (Sandbox Code Playgroud)

在做最后一个数字部分之前,我需要删除此字符串的所有字符

P1PR20        -> 20
P20PR321      -> 321
P4321PR54321  -> 54321
P1PR1         -> 1
Run Code Online (Sandbox Code Playgroud)

请问,有什么建议吗?

Joe*_*ras 8

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

试试这个:

SELECT SUBSTRING(field, INSTR(field, 'PR') + 2, 100)
FROM dual
Run Code Online (Sandbox Code Playgroud)

编辑

INSTR(field, 'PR')< - 获得PR首次出现的指数.在你的情况下:

如果你有:

P1PR20 函数的值是3

P20PR321 函数的值是4.

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

在第一种情况下:

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

在第二种情况:

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

100是一般偏移量