Вопрос по mysql – Получение последних 5 символов строки с помощью запроса MySQL

36

Я должен получить последние 5 номеров с помощью MySQL.

Мои ценности какYOT-A78514,LOP-C4521 ...

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

Почему бы вам не посмотреть ответ здесь?stackoverflow.com/questions/12504985/… James Marriott
вы используете php? t q
@t q: почему это важно? zerkms

Ваш Ответ

5   ответов
90

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

Как ниже:

SELECT RIGHT(columnname,5) as yourvalue FROM tablename
1
SELECT row_id
  FROM column_name
WHERE column_value LIKE '%12345';

row_id & quot; когда "12345" обнаружено, что это хвостовой суффикс & quot; column_value & quot; внутри & quot; столбца_имя & quot ;.

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

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

1

после символа:

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

при котором использование подстроки может привести к проблеме, которую не так легко заметить:

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)

Похожие вопросы