2013-02-20 41 views
0

我有三個表選擇在SQL串的一部分,並使用它來更新列

products->(id, number, public, custom, etc) 
references->(id,ref,product_id,price_id) 
product_descriptions->(id,product_id,description,summary) 

我需要填充從表引用列REF是int的值,使用的一部分表product_descriptions中的字符串描述,這可能嗎?

如何從表的一列中選擇字符串的特定部分並將其轉換爲int並存儲在不同表的列中?

我使用的是MySQL

回答

0

對Transact-SQL(SQL Server中,SYBASE ASE,ASA,IQ)你可以試試這個。

假定product_description的前4個字符(從0開始,長度爲4個字符)是您希望存儲在列references.ref中的INTEGER值。嘗試這樣的事情在T-SQL

UPDATE references SET ref = CAST(SUBSTRING(t2.description,0,4) AS INTEGER) 
FROM references AS t1 
INNER JOIN product_descriptions AS t2 
ON t1.product_id = t2.product_id 
+0

嗨感謝您的幫助,說明沒有特定的格式在我的情況下,有可能在一個描述是參考大於1倍的值,但裁判必須採取的每個值從描述中... – Taz 2013-02-20 20:33:57