2014-11-24 2 views
0

Я хотел бы извлечь номер между NUMBER и ;. Пока я могу извлечь данные до номера, но я не хочу ничего после номера. например,MySQL - извлечение номера из поля данных с использованием SUBSTRING

SELECT 
    SUBSTRING(field, LOCATE('NUMBER=', rrule) + 7) 
FROM table 

поле данных:

DATA:PASS=X12;NUMBER=331;FIELD=1 
DATA:PASS=X12;NUMBER=2;FOO=BAR;FIELD=1 

Желаемая Выход:

331 
2 

ответ

2

Вы можете использовать комбинацию SUBSTRING_INDEX функций:

SELECT 
    SUBSTRING_INDEX(
    SUBSTRING_INDEX(field, 'NUMBER=', -1), 
    ';', 
    1) 
FROM 
    tablename 

Пожалуйста, обратитесь к example fiddle here.

Внутренний SUBSTRING_INDEX вернет все после строки NUMBER =, а второй вернет все до; возвращенный внутренней функцией.

+0

именно то, что мне нужно, спасибо! –

Смежные вопросы