2015-06-04 7 views
5

Mam tysiące wpisów w mojej bazie danych, każda z 9 cyfr lub mniej. Chciałbym dokonać aktualizacji masy, znaleźć wszystkie wiersze z cyframi mniejszymi niż 9 i dodać 0, aby były równe 9 cyfrom.MySQL - Dodaj 0 do liczb mniej niż 9 cyfr

Na przykład, moja tabela wygląda następująco:

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

Chciałbym, aby wyglądał jak:

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

jaki sposób mogę to zrobić z kwerendy MySQL?

Odpowiedz

8

Funkcja lpad powinno rozwiązać problem:

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

odpowiedzieć na pytanie w komentarzu, to można również zastosować w oświadczeniu update:

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

Oh świetna funkcja. Jak mogę to zmienić w oświadczenie aktualizacji? – steeped

+0

wow zignoruj ​​moją odpowiedź. To jest o wiele lepsze – mangodreamz

+1

@stosowano Edytowałem moją odpowiedź, aby uwzględnić użycie 'update' – Mureinik

1

Użyj instrukcji case

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

Posiadają element w instrukcji case dla każda możliwa długość kolumny. Rodzaj podręcznika i prawdopodobnie istnieje łatwiejszy sposób, ale jest to jedna z możliwości.