У меня есть поле пути в таблице 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
Rakesh K 6 Мар 2015 в 14:08

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 будет выглядеть как

select
substring_index(path,'/',-1) as number 
from table_name
;
2
Abhik Chakraborty 6 Мар 2015 в 11:24

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

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

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

$page = str_replace('trending-architectures/architecture_detail_page/', '', $path);
0
Ali 6 Мар 2015 в 11:15