2011-11-30 3 views
0

просто нужна помощь с регулярным выражением в MySQL Query пожалуйста:MySQL: возвращение макс последних 5 цифр из колонки

column ISRC 
GBCQV0700378 
GBCQV0700382 
GBCQV0700387 

мне нужно 00387 вернулся ко мне (самое большое число) я использую:

SELECT max(ISRC) REGEXP "/(\d{5})$/" FROM digital_info; // returns 0 

SELECT max(ISRC) FROM digital_info as m where (ISRC REGEXP "/(\d{5})$/"); // returns NULL 

прошу?

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

Не все ISRC имеют префикс GBCQV, но мне нужно только MAX из префикса GBCQV?

column ISRC 
GBCQV0700378 
SOME00125963 
GBCQV0700382 
GBCQV0700387 

, но я все еще нужно 00387 вернулся ко мне, пожалуйста,

ответ

0
SELECT MAX(SUBSTRING(ISRC, -5)) FROM digital_info WHERE LEFT(ISRC) = "GBCQV"; 
+0

спасибо за ответ, но я просто понял, что мне нужно сложнее, чем просто спросил. я отредактировал мой оригинальный пост – Elen

+0

Обновлен ответ –

+0

, исправляющий LEFT (ISRC, 5) - отлично работал! благодаря – Elen

1

Используйте строку на основе RIGHT() функции:

SELECT MAX(RIGHT(ISRC, 5)) ... 
+0

она никогда не приходила мне в голову просто использовать RIGHT() !! нужно немного отдохнуть от кодирования, это точно ... спасибо! – Elen

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