right length left mysql varchar

length - Obteniendo los Ășltimos 5 caracteres de cadena con la consulta mysql



substring left right mysql (5)

Tengo que obtener los últimos 5 números usando mysql.

Mis valores son como YOT-A78514 , LOP-C4521 ...

Tengo que obtener solo los últimos cinco char. ¿Cómo puedo hacer esto en la consulta?


La función "derecha" es la forma de utilizar la subcadena, lo que puede ocasionar un problema que no es tan fácil de detectar:

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)

Pero si no intenta ir más allá del inicio de la cadena, entonces la subcadena por supuesto funciona bien:

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


Puedes hacer esto con la función RIGHT(str,len) . Devuelve los caracteres len más a la derecha de la cadena str ,

Como abajo:

SELECT RIGHT(columnname,5) as yourvalue FROM tablename


Y si quieres obtener un número dinámico de personajes correctos después de un personaje:

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


Right es una buena opción, pero también puede usar una substring como esta-

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


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

Esto devolverá el "row_id" cuando se encuentre que "12345" es el sufijo de seguimiento del "valor_columna" dentro del "nombre_columna".