2012-04-13 3 views
28

Мне нужно получить последние 5 чисел, используя mysql.Получение последних 5 символов строки с запросом mysql

Мои ценности подобны YOT-A78514, LOP-C4521 ...

я должен получить только последние пять полукокса. Как я могу сделать это в запросе?

+0

ты нас php? –

+4

@t q: почему это имеет значение? – zerkms

+0

Почему вы не смотрите на ответ здесь? https://stackoverflow.com/questions/12504985/how-to-take-last-four-characters-from-a-varchar –

ответ

74

Вы можете сделать это с помощью функции RIGHT(str,len). Возвращает крайние правые Len символы из строки ул,

Как показано ниже:

SELECT RIGHT(columnname,5) as yourvalue FROM tablename 
+3

Я не могу заставить себя делать +1 здесь. –

4

Right является хорошим выбором, но вы также можете использовать substring как this-

SELECT Substring(columnname,-5) as value FROM table_name 
1
SELECT row_id 
    FROM column_name 
WHERE column_value LIKE '%12345'; 

Это вернет «row_id», когда «12345» окажется хвостом uffix "column_value" в пределах "column_name".

+0

Это хороший ответ для тех, кто хочет применить фильтр в предложении WHERE. – Kvvaradha

1

И если вы хотите, чтобы получить динамичное количество правильных символов после символа:

SELECT TRIM( 
    RIGHT(
     database.table.field, 
     (LENGTH(database.table.field) - LOCATE('-',database.table.field)) 
    ) 
) 
FROM database.table; 
10

«Право» -функция является способом, с помощью подстроки может привести к проблеме, которая не так просто заметить:

mysql> select right('hello', 6); 
+-------------------+ 
| right('hello', 6) | 
+-------------------+ 
| hello    | 
+-------------------+ 
1 row in set (0.00 sec) 

mysql> select substring('hello', -6); 
+------------------------+ 
| substring('hello', -6) | 
+------------------------+ 
|      | 
+------------------------+ 
1 row in set (0.00 sec) 

Но если не пытаться пройти в начале строки, то подстрока, конечно, работает отлично:

mysql> select substring('hello', -5); 
+------------------------+ 
| substring('hello', -5) | 
+------------------------+ 
| hello     | 
+------------------------+ 
1 row in set (0.00 sec) 
Смежные вопросы