функция для возврата совпадений регулярного выражения в mysql, как preg_match возвращаемый массив в php - PullRequest
0 голосов
/ 12 июля 2010

У меня есть таблица с данными типа

ticketid  | comments
----------------------
1234      | >
> Ticket ID:TT19027
>
> Ticket Title:report debug
>
>
4567      |>
> Ticket ID:TT19028
>
> Ticket Title:report debug
>
>

Я ищу функцию или запрос, который вернет

ticketid  | ticket_no_part_of_comments
1234      | TT19027
4567      | TT19028

Я могу использовать предложение вроде

comments regexp 'Ticket ID:([0-9]*)'
но он просто возвращает 1 или 0.

Любые предложения.

Спасибо заранее, Anitha

Ответы [ 2 ]

0 голосов
/ 12 июля 2010

Вы можете взглянуть на пользовательские функции preg для MySQL на сайте MySQL UDF , так как там может быть что-то полезное.

0 голосов
/ 12 июля 2010

Получить подстановку ":" в столбце комментариев.

Вы должны получить строку после первого ":" символа.

mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);
        -> 'www.mysql'
mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2);
        -> 'mysql.com'

Подробнее о Строковые функции Вы можете найти на http://dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_substr

Ваше решение:

SELECT ticketid, SUBSTRING_INDEX(comments, ':', -2) as ticket_no_part_of_comments FROM your_table
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...