来自MySQL的Substr通过掩码(正则表达式)

时间:2018-05-16 05:57:04

标签: mysql regex

我在DB(Mysql 5.7)中有很多与params的链接,需要提取id参数(比如这个 - https://item.taobao.com/item.htm?id=550585067709,可以有很多参数,不仅有一个...),有preg_match与正则表达式,我在php中使用 -

preg_match_all('/(?|&)id=(.*?)&/', $link, $matches); 

如何在MySQL查询中提取此ID?

1 个答案:

答案 0 :(得分:1)

您可以使用SUBSTRING_INDEX

-- output assume a URL of https://item.taobao.com/item.htm?id=550585067709
SELECT
    SUBSTRING_INDEX(SUBSTRING_INDEX(url_col, '?', -1), '&', 1)
FROM dual;

id=550585067709

Demo

请注意,上述解决方案在是否存在多个参数(即是否存在&)方面是健壮的。