Захватить число в строке

0

Я храню сериализованную таблицу в столбце Mysql. Данные выглядят так:

a: 2: {i: 116; s: 1: "4"; i: 113; s: 1: "6";}

Я пытаюсь извлечь номер, который всегда был помещен раньше ;s:1:"6"; В приведенном выше примере число будет равно 113.

Я запускаю Mysql 5.7, поэтому у меня нет доступа к новым функциям регулярных выражений. Было бы неплохо получить доступ к PREG_CAPTURE и просто написать

PREG_CAPTURE(\'i:([0-9]+);s:1:"6";\', mycolumn, 1)

Но я не могу использовать PREG_CAPTURE, и я застрял. Любая идея?

Теги:

1 ответ

0

Используйте substring_index. Попробуй это

SELECT SUBSTRING_INDEX (поле1, '; s: 1: "6";', 1)

  • 0
    Это вернет строку раньше ;s:1:"6"; В моем примере это было бы a:2:{i:116;s:1:"4";i:113 Как извлечь число 113 тогда?
  • 0
    Используйте regex s: 1: "+ [0-9]", как указано в ссылке regextester.com/?fam=103604
Показать ещё 1 комментарий

Ещё вопросы

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