Подтвердить что ты не робот

Получение последних 5 char строки с запросом mysql

Мне нужно получить последние 5 чисел, используя mysql.

Мои значения похожи на YOT-A78514, LOP-C4521...

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

4b9b3361

Ответ 1

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

Как ниже:

SELECT RIGHT(columnname,5) as yourvalue FROM tablename

Ответ 2

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

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)

Ответ 3

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

SELECT Substring(columnname,-5) as value FROM table_name

Ответ 4

SELECT row_id
  FROM column_name
WHERE column_value LIKE '%12345';

Это вернет "row_id", когда "12345" окажется суффиксом хвоста "column_value" в "column_name".

Ответ 5

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

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