2012-04-13 22 views
28

Tengo que obtener los últimos 5 números usando mysql.Obteniendo los últimos 5 caracteres de cadena con la consulta de mysql

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

Tengo que sólo duran cinco carbón. ¿Cómo puedo hacer esto en la consulta?

+0

qué nos ing php? –

+4

@t q: ¿por qué es importante? – zerkms

+0

¿Por qué no miras la respuesta aquí? https://stackoverflow.com/questions/12504985/how-to-take-last-four-characters-from-a-varchar –

Respuesta

74

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

, como a continuación:

SELECT RIGHT(columnname,5) as yourvalue FROM tablename 
+3

No puedo detenerme a hacer +1 aquí. –

4

Right es una buena opción, pero también se puede utilizar substring así-

SELECT Substring(columnname,-5) as value FROM table_name 
1
SELECT row_id 
    FROM column_name 
WHERE column_value LIKE '%12345'; 

Esto devolverá el "row_id" cuando se encuentre que "12345" es la cola uffix del "valor_columna" dentro del "nombre_columna".

+0

Esta es una buena respuesta para aquellos que quieran aplicar el filtro dentro de la cláusula WHERE. – Kvvaradha

1

Y si se quiere obtener un número dinámico de caracteres correctos de un personaje:

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

"derecha" -función es la manera, utilizando la subcadena puede conducir a un problema que no es tan fácil a notar:

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 se trata de ir más allá del principio de la cadena, a continuación, subcadena, por supuesto, funciona bien:

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