2009-11-13 196 views
4

我有一張大桌子(〜10,000),我需要一列才佔據三個空格。它幾乎總是隻佔用一個空間,但我需要另外兩個空格填充零(這是一個整數列)。有沒有這個功能?如何用MySQL查詢填充或填充具有零的列?

+0

你爲什麼要一列正好3位? – 2009-11-13 16:41:13

回答

3

ZEROFILL屬性添加到int列。

+0

其描述如下:(表下方的第3段): http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html – Tomas 2009-11-13 16:42:18

+0

Danke Schoen,Muito Obrigado,謝謝:-) – btelles 2009-11-13 16:50:11

0

INT列不存儲前導零。

您可能需要添加一個存儲帶前導零的字符串轉換值的列。

8

你爲什麼要這樣做?如果是因爲您想要某個報表查詢表格以將一個數字值顯示爲3位數字,請在顯示時將填充零點添加。不要將顯示信息混合到您的數據中。

+0

希望我可以不止一次地對此讚賞。 – 2009-11-13 16:43:07

+0

爲什麼你會花時間假設我不知道如何構造數據,然後花時間寫一個聰明的答案?我不是在這裏辯論數據結構理論,我在這裏得到一個問題的答案。 – btelles 2009-11-13 16:49:26

+0

對不起,我不是一個心靈讀者。很多人會問那些不知道如何構造數據的問題,這似乎是人們爲什麼要這樣做的可能解釋。不需要冒犯,你可以跳過這個答案,繼續告訴你使用ZEROFILL。 – 2009-11-13 16:53:25

0

如果您可以控制相關表格的定義,則可以使用MySQL's zerofill attribute。它可以讓你定義一個用零填充的數字列。

如果沒有這個控制(和你真的應該無論如何做),你從表中查詢值添加填充:

SELECT LPAD(CONVERT(IntColumn,VARCHAR(3)),3,'0') 

這樣的整數仍保存作爲它應該是的正常整數,但從消費此查詢的任何角度來看,整數是padded