У меня много ссылок с параметрами в DB (Mysql 5.7), вам нужно извлечь параметр id (например, https://item.taobao.com/item.htm?id=550585067709, может быть много параметров, не только один...), имеют preg_match с регулярным выражением, которое я использую в php -
preg_match_all('/(?|&)id=(.*?)&/', $link, $matches);
Как я могу извлечь этот идентификатор в запросе MySQL?
Вы можете использовать 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
Следует отметить, что указанный выше раствор является устойчивым по отношению к ли или не существует более одного параметра (т.е. является ли или нет &
присутствует).