2015-06-04 8 views
5

Ho migliaia di voci nel mio database, ciascuna con 9 cifre o meno. Mi piacerebbe fare un aggiornamento di massa, trovare tutte le righe con cifre inferiori a 9 e aggiungere 0 per renderle uguali a 9 cifre.MySQL - Aggiungi numeri 0 a numeri con meno di 9 cifre

Per esempio, la mia tabella assomiglia:

ID | Number 
--------------- 
0 | 489379 
1 | 854744329 
2 | 56456669 

Vorrei far sembrare:

ID | Number 
--------------- 
0 | 000489379 
1 | 854744329 
2 | 056456669 

Come dovrei fare questo con una query MySQL?

risposta

8

La funzione lpad dovrebbe risolvere il problema:

SELECT `id`, LPAD(`Number`, 9, '0') 
FROM mytable 

Per rispondere alla domanda nel commento, questo può essere applicato anche in un update dichiarazione:

UPDATE mytable 
SET `Number` = LPAD(`Number`, 9, '0') 
WHERE LENGTH(`Number`) < 9 
+0

Oh ottima funzione. Come potrei trasformare questo in una dichiarazione di aggiornamento? – steeped

+0

wow ignora la mia risposta. Questo è molto meglio – mangodreamz

+1

@steeped Modificato la mia risposta per includere un uso di 'update' – Mureinik

1

utilizzare un'istruzione caso

update table 
set column1 = case when length(column1) = 4 then concatenate('00000', column1).... 

avere un elemento nella dichiarazione del caso per ogni possibile lunghezza della colonna. Tipo di manuale, ed è probabile che sia un modo più semplice, ma questa è una possibilità.