我需要在MySQL中获取字符串的一部分,将其放在触发器中,其中字符串的这一部分是另一个表的键,并将用作外键
字符串如下所示:P####PR####
其中#是一个数字,在' PR'之后这些数字是我需要保存的另一个表的ID,但是...数字部分的大小是可变的,如
P1PR20
P20PR321
P4321PR54321
P1PR1
我需要删除此字符串的所有字符才能执行最后一个数字部分
P1PR20 -> 20
P20PR321 -> 321
P4321PR54321 -> 54321
P1PR1 -> 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是一般偏移量