Я хочу извлечь слово из строкового столбца таблицы.
description
===========================
abc order_id: 2 xxxx yyy aa
mmm order_id: 3 nn kk yw
Ожидаемый набор результатов
order_id
===========================
2
3
В таблице не более 100 строк, длина текста ~ 256 символов, а в столбце всегда присутствует один order_id
. Так что производительность не проблема.
В Oracle я могу использовать REGEXP_SUBSTR
для этой проблемы. Как бы я решить это в MySQL?
Редактировать 1
Я использую LOCATE и SUBSTR для решения проблемы. Код ужасен. Через десять минут после написания кода я проклинаю парня, который написал такой уродливый код.
Я не нашел функцию REGEXP_SUBSTR в документах MySQL. Но я надеюсь, что это существует ..
Ответ: Почему нельзя оптимизировать таблицу? Почему данные хранятся в такой тупой форме?
Пример, который я привел, обозначает проблему, которую я пытаюсь решить. В реальном сценарии я использую стороннее программное обеспечение для организации очередей для выполнения асинхронных задач. Очередь сериализует объект Ruby как текст. У меня нет контроля над структурой таблицы ИЛИ форматом данных. Задачи в очереди могут повторяться. В нашей тестовой настройке некоторые повторяющиеся задачи не выполняются из-за устаревших данных. Я должен удалить эти задачи, чтобы предотвратить ошибку. Такие ошибки не распространены, поэтому я не хочу поддерживать нормализованную теневую таблицу.