Получение последних 5 char строки с запросом mysql Мне нужно получить последние 5 чисел, используя mysql. Мои значения похожи на YOT-A78514, LOP-C4521... Мне нужно получить только последние пять char. Как это сделать в запросе? Ответ 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;
Ответ 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;