2015-03-06 2 views
0

У меня есть поле пути в таблице mysql, которое ограничивает путь к странице.Mysql - номер из строки

Он, имеющий идентификатор страницы в конце, как 33, 31, 121 ...

Как я могу написать запрос, чтобы получить только идентификаторы?

Path 
----- 
trending-architectures/architecture_detail_page/31 
trending-architectures/architecture_detail_page/33 
trending-architectures/architecture_detail_page/33 
trending-architectures/architecture_detail_page/33 
trending-architectures/architecture_detail_page/33 
+0

В PHP вы можете сделать это с помощью 'preg_match_all' ------------------ ------ 'preg_match_all ('! \ D +!', $ Str, $ matches); print_r ($ matches); ' , иначе вы можете использовать ' preg_match_all ("/ [^ 0-9] /", "", $ str, $ matches); print_r ($ matches); ' – phpfresher

+0

Я должен сделать это в инструкции SELECT mysql. –

+0

Все строки одного и того же рисунка? т. е. 2 '/', а последнее значение после '/' - это число? –

ответ

2

Если шаблон же, вы можете использовать функцию substring_index()

mysql> select substring_index('trending-architectures/architecture_detail_page/31','/',-1) as num; 
+-----+ 
| num | 
+-----+ 
| 31 | 
+-----+ 
1 row in set (0.00 sec) 

Так что оператор выбора будет идти, как

select 
substring_index(path,'/',-1) as number 
from table_name 
; 
+0

Hii @ Abhik Chakraborty ... я думаю, что у него даже есть три номера в конце (например, 121, 122, ....) .. Будет ли этот запрос работать в этом случае? – phpfresher

+0

Если шаблон такой же, он получит любое количество от конца. –

+0

Да, он работает отлично. Спасибо :) –

0

Я могу думать о двух решениях, первом из которых использует взрывается, чтобы разделить строку на массив с помощью «/» deliemeter, а затем он устанавливает последнее значение массива (который является идентификатором страницы) внутри переменная

$path = explode('/', $path); 
$page = end($path); 

Другое решение просто заменяет любой текст перед номером ни с чем

$page = str_replace('trending-architectures/architecture_detail_page/', '', $path); 
+0

В php я могу. \t Я должен сделать это в инструкции SELECT mysql. –

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