2013-02-04 55 views
1

我試圖將行從一個表插入到另一個表中。在第一個表中,一列的數據類型爲char(5),但同一列在第二個表中具有tinyint(4)數據類型。當我運行插入查詢,它說在mysql中將char(5)轉換爲tinyint(4)

Incorrect integer value: '' for column 'x' at row 258 

我不能改變或修改現在的數據類型,因爲它違反了一些限制。有沒有辦法使用強制轉換或將char轉換爲tinyint?

謝謝。

+2

你想要一個空字符串的值是什麼,當它成爲一個int? –

+0

它也應該是空的 – Anil

+0

不可以 - 它不能是空白的,因爲你使它成爲一個int。 Ints必須是整數(即數字)。空白不是一個數字。 –

回答

2

你可能想是這樣的:

INSERT INTO newtable 
SELECT CASE WHEN x = '' THEN 0 ELSE x END 
FROM oldtable 

我假設你想空白變成零?如果不是,則提供您想要空白的整數值。

如果還有其他例外情況,請在CASE表達式中使用更多選項。

+1

+1 - 尼斯答案! – sgeddes