2013-04-03 148 views
0

我有一個帶有價格字段的數據庫。這個價格字段被定義爲varchar。值有點像123,45。我需要將此varchar字段轉換爲所有記錄中的整數。我如何解決這個問題?將varchar轉換爲整數

+0

爲什麼要整數?如果這應該是'123.45',那麼你會失去'.45' – 2013-04-03 18:47:34

+0

我需要更改爲整數字段,因爲我需要創建一些報告,但程序只使用整數字段。 – 2013-04-03 19:10:10

+0

那麼整數值應該是多少呢? '123'? '12345'? – 2013-04-03 19:10:43

回答

2

如果所有在mySQL中都在進行轉換,CAST就是你的朋友。

http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html#function_cast

如果你正在做它的MySQL之外,幾乎所有的語言都投功能應該能夠採取一種輸入作爲一個字符串,並試圖將其轉換爲所需的值 - 例如,C#可能使用int.Parse(string);

+0

我認爲最好的方法是創建一個新的整數字段。現在我需要知道如何將價格值(varchar字段)存儲到這個新的整數字段。 – 2013-04-03 19:07:26

0

你可以用鑄造法或修改表

ALTER TABLE yrtable ALTER COLUMN `price` DECIMAL (10,2); 
+0

ALTER TABLE produtos_vendidos ALTER COLUMNpreçoDECIMAL(10,2);這給了我一個錯誤 – 2013-04-03 18:59:03

+0

您將需要確保該列中的所有值都可以是數字。此外,如果列是主鍵,則可能需要在更改類型之前刪除該列,然後重置該列上的主鍵。 – iowatiger08 2013-04-03 19:18:21

+0

嘗試使用MODIFY關鍵字。 ALTER TABLE yrtable MODIFY price DECIMAL(10,2); – iowatiger08 2013-04-03 19:21:30

0

這對我更好地工作。它來自文檔。

ALTER TABLE yrtable CHANGE columnname columnnameagain BIGINT NOT NULL;