Mysql - 从字符串中提取数字

时间:2015-03-06 11:08:10

标签: php mysql

我在mysql表中有路径字段,用于存储页面的路径。

最后有页面ID,如33,31,121 ......

如何编写查询以仅获取ID?

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

2 个答案:

答案 0 :(得分: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
;

答案 1 :(得分:0)

我可以想到两个解决方案,第一个解决方案利用explode将字符串拆分成一个数组,使用" /" deliemeter然后它在变量

中设置数组的最后一个值(即页面id)
$path = explode('/', $path);
$page = end($path);

其他解决方案只是替换数字之前的任何文本

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