Субстр из MySQL по маске (регулярное выражение)

0

У меня много ссылок с параметрами в DB (Mysql 5.7), вам нужно извлечь параметр id (например, https://item.taobao.com/item.htm?id=550585067709, может быть много параметров, не только один...), имеют preg_match с регулярным выражением, которое я использую в php -

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

Как я могу извлечь этот идентификатор в запросе MySQL?

Теги:

1 ответ

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

демонстрация

Следует отметить, что указанный выше раствор является устойчивым по отношению к ли или не существует более одного параметра (т.е. является ли или нет & присутствует).

  • 0
    Спасибо! Работает

Ещё вопросы

Сообщество Overcoder
Наверх
Меню