2013-07-12 49 views
0

第二個表使用整數而不是字符串進行錯誤構建。原表使用了一個字符串。 (字段的字符串是壓縮成一個領域的其他三個數字ID汞合金)用於在特定字段的所有記錄中放置前綴的SQL查詢

原來,鏈接到其它表與詮釋到字符串有問題。我想將第二個表中的字段從整數更改爲字符串,並在現有整數前面加上前綴「00」(零 - 零) - 現在是一個字符串。這是兩者之間的唯一區別。

我也許可以匹配兩個以「喜歡」我猜,但要精確匹配,而這應該是一次性的修補程序。

謝謝!

喬利

+0

您正在使用什麼數據庫管理系統與行動? –

回答

0

什麼(在MySQL)

SELECT CONCAT('00', CAST(field AS CHAR)) AS newfield 

然而,怎麼樣從字符串轉換第一個表爲int?

0

首先添加字符串數據類型的另一列具有相同的數據作爲整數數據列。

UPDATE表SET列2 = CAST(COLUMN1 AS CHAR)

然後你就可以前綴 '00' 到列使用下面的查詢。

UPDATE表SET列2 = CONCAT( '00',列2)

希望這能解決你的問題

0

假設MySQL中,你要首先更改列的數據類型,這樣

ALTER TABLE tab MODIFY COLUMN IDBoth VARCHAR(10); -- or what ever size is needed 

然後做一個更新,像這樣一個CONCAT:

UPDATE TAB as t1 
JOIN tab as t2 
ON t1.id1 = t2.id2 -- Add additionation join criteria if needed to get right join 
SET t1.IDBOTH = CONCAT('00', t1.IDBOTH); 

看到它在此SQLFIDDLE

相關問題