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".