2012-04-13 12 views
28

Devo ottenere gli ultimi 5 numeri usando mysql.Come ultimo 5 caratteri di stringa con query mysql

I miei valori sono come YOT-A78514, LOP-C4521 ...

Devo solo lo scorso cinque char. Come posso farlo nella query?

+0

ci stai ing php? –

+4

@t q: perché è importante? – zerkms

+0

Perché non guardi la risposta qui? https://stackoverflow.com/questions/12504985/how-to-take-last-four-characters-from-a-varchar –

risposta

74

È possibile farlo con la funzione RIGHT(str,len). Restituisce i più a destra len caratteri dalla stringa str ,

come di seguito:

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

Non riesco a fermarmi a fare +1 qui. –

4

Right è una buona scelta, ma si può anche utilizzare substring come questo-

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

Ciò restituirà "row_id" quando "12345" risulta essere la coda s uffisso del "column_value" all'interno di "column_name".

+0

Questa è una buona risposta per coloro che desiderano applicare il filtro all'interno della clausola WHERE. – Kvvaradha

1

E se si vuole ottenere un numero di caratteri dinamica destra dopo un carattere:

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

"Destra" -funzione è il modo per, utilizzando la stringa può portare ad un problema che non è così facile da notare:

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) 

Ma se non si tenta di dribblare l'inizio della stringa, quindi sottostringa ovviamente funziona bene:

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