2014-10-10 2 views
0

Мне нужно получить часть строки в MySQL, чтобы поместить его в триггере, где эта часть строки является ключом для другой таблицы и будет использовать в качестве внешнего ключаПолучить часть строки в MySQL

Строки выглядит следующим образом: P####PR#### где # это номер, после того, как «PR» цифра идентификатор для другой таблицы, где мне нужно сохранить, но ... размер количества частей переменный как

P1PR20 
P20PR321 
P4321PR54321 
P1PR1 

мне нужно удалите все символы этой строки перед последней числовой частью

P1PR20  -> 20 
P20PR321  -> 321 
P4321PR54321 -> 54321 
P1PR1   -> 1 

пожалуйста, любое предложение?

+0

Вы можете получить подстроку из последнего индекса «PR» до конца строки. К сожалению, я не могу ответить на полный ответ, но я уверен, что кто-то еще это сделает, или вы можете сделать что-то вроде функции MySQL SUBSTRING. –

ответ

7

Я полагаю, у вас есть шаблон P #### PR #### (как вы сказали, в вашем вопросе), так

Попробуйте это:

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

EDIT

INSTR(field, 'PR') < - получить индекс первого появления PR. В ваших случаях:

Если у вас есть:

P1PR20 значение функции 3

P20PR321 значение функции равно 4.

добавить 2, потому что я должен расположить на первом char после PR.

В первом случае:

Вы имеете SUBSTRING (поле, 3 + 2, 100) -> 20

Во втором случае:

Вы имеете SUBSTRING (поле, 4 + 2, 100) -> 321

100 является общим смещением

+0

Это почти что, но размер чисел до PR тоже переменный, это может быть P20PR20 OR P321PR20 –

+0

Да, но я беру индекс PR, теперь обновляю свой ответ, чтобы лучше объяснить мою стратегию –

+0

Совершенно новый, я получил это, спасибо, брат! –

Смежные вопросы