2008-10-01 78 views
13

我有一個用戶列表,其中有一個由6位數字組成的用戶名列,例如675381,我需要爲每個這些用戶名添加一個零,例如, 0675381將是前面例子的最終輸出,有沒有可以處理這個問題的查詢?MySQL查詢預先填入每個條目的字符

回答

27
UPDATE Tablename SET Username = Concat('0', Username); 
+0

謝謝,用戶布萊恩得到它,但我應該說prepend而不是追加,他似乎已經刪除了他的帖子,但現在!乾杯。 – Stuart 2008-10-01 08:13:58

+1

你提供了一個例子:675381應該成爲0675381 – daniels 2008-10-01 09:35:36

4

是什麼類型的列?

,如果它是字符串類型,嘗試這樣的事情:

UPDATE your_table SET column_name=concat('0',column_name); 
+0

謝謝,丹尼爾斯只是一點點快。 – Stuart 2008-10-01 08:20:05

1

你的意思是 「前面加上」?即將其添加到前面?

是否爲數字?你總是希望輸出7個字符嗎?

假設,像這樣的一個查詢工作:

select LPAD(CONVERT(username, CHAR), 7, '0') 

如果列字符,則CONVERT()部分是不必要的,只是LPAD的用戶名。

如果要永久性修改表中的值,則需要確保該列是字符類型,並使用上述內容更新UPDATE。

0

您可能想要使用CONCAT_WS('','0',用戶名),因爲如果有一個空值,那麼你最終會得到NULL而不是'0'。這可能不是問題,但是我已經學會了很難的方法。