2015-06-04 35 views
5

Veritabanımda her biri 9 basamaklı veya daha az olan binlerce girdim var. Toplu bir güncelleme yapmak, 9'dan küçük rakamlarla tüm satırları bulmak ve 0'ı 9 basamaklı hale getirmek için 0'ları eklemek istiyorum.MySQL - 0'dan 9 basamaklı sayılara 0'ları ekle

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

nasıl MySQL sorgusu ile bu yapardın: Ben süsü istiyoruz

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

:

Örneğin benim masa benziyor?

cevap

8

lpad fonksiyon sorunu çözmek gerekir:

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

yorumunda soruya cevap vermek için, bu da bir update açıklamada uygulanabilir:

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

Harika bir işlev. Bunu bir güncelleme tablosuna nasıl dönüştürebilirim? – steeped

+0

wow cevabımı görmezden gel. Bu çok daha iyi – mangodreamz

+1

@steeped Bir 'update' kullanımı içerecek şekilde cevabımı düzenledim – Mureinik

1

case ifadesi kullanın

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

Durum bildirisinde bir öğe var. sütunun her olası uzunluğu. El kitabı ve muhtemelen daha kolay bir yol var, ama bu bir olasılık.