2017-04-20 29 views
0

MySQL錯誤請考慮下面的代碼與CAST和串聯

UPDATE users SET class = '-' + CAST(class AS CHAR(50)) + '-' WHERE 1=1 

上面的查詢引發以下錯誤:

#1292 - Truncated incorrect DOUBLE value: '-' 

近日筆者從int(11)更新類列varchar(255),我試圖更新每一行的格式爲:-class-其中class是前一個int值。

回答

1

如果您已更新從int柱爲varchar再沒有一點鑄造它,只是使用CONCAT

UPDATE users SET class = CONCAT ('-',class,'-') WHERE 1=1 

如果類是NULL,那麼結果將是空,因此要確保你只更新CLASS with values

UPDATE users SET class = CONCAT ('-',class,'-') WHERE class IS NOT NULL 
+0

解決了這個問題,謝謝! – Rumple

+0

你可能是指'class IS NOT NULL'。 – tadman

+0

正確..我在看可能是一箇舊的文檔 – maSTAShuFu