Получить значение самого совпадения REGEXP

Alex800

Новичок
Получить значение самого совпадения REGEXP

Скажите пожалуйста, может быть ктонибудь сталкивался, как в Mysql получить значение самого совпадения шаблона REGEXP а не 1 или 0 (присутсвует или нет) Например такой запрос:

SELECT (
MAX(code REGEXP '(10|23|67|78)')
) FROM table

Цель получить максимальное СОВПАДЕНИЕ т.е. не значение поля code а именно совпадения. Есть совет?
 

alpine

Новичок
Alex800
Какую общую задачу ты решаешь? Где такое используется?
 

Alex800

Новичок
Это задача поиска по максимальному совпадению, т.е. есть некорый запрос содержащий например "12345" и по нему нужно найти поле таблицы содержащее данные (те перечислены в поле таблицы через запятую) максимально похожее на запрос т.е. содержащее максимум цифр от исходного (от начала).

Запрос делаю типа:

REGEXP '(^|,)(12345|1234|123|12|1)(,|$)'

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

hermit_refined

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

Alex800

Новичок
А если их там всего 3-5 штук зачем мне заводить отдельную таблицу. И их будет у меня 1500 таблиц? :)
 

hermit_refined

Отшельник
вот видите. вы умный человек, сами все знаете, сами во всем разбираетесь, никто другой вам не указ.
не понятно только, зачем при этом спрашиваете какие-то глупости.
 

Alex800

Новичок
Почему глупости, я не профессионал в MYSQL и задал простой вопрос знающим людям - можно ли используя REGEXP получить шаблон совпадения
 

alpine

Новичок
Alex800
Можно сделать на "CASE WHEN ... THEN ... END" + "FIND_IN_SET()", но лучше нормализовать таблицу.
 

walrus

Новичок
Автор оригинала: Alex800
А если их там всего 3-5 штук зачем мне заводить отдельную таблицу. И их будет у меня 1500 таблиц? :)
1500 записей не сильно увеличат время выполнения скриптов, но в будущем можно забыть про рефакторинг. Согласен, что лучше сейчас привести ее к нормализованному виду
 

Alex800

Новичок
Автор оригинала: alpine
Alex800
Можно сделать на "CASE WHEN ... THEN ... END" + "FIND_IN_SET()", но лучше нормализовать таблицу.
Спасибо, большое, через эту конструкцию я решил свой вопрос. А нормализация таблицы это что то про связанные таблицы?
 

walrus

Новичок
http://vtit.kuzstu.ru/books/shelf/169/doc/n5.html
глянь здесь, там еще 5 и 6 формы есть
 
Сверху