2013-10-16 38 views
0

我工作的一些Mysql的任務,並要求:mysql如何增加價值的電流值

所有誰是經理的員工(領導型「L」)獲得6%的加薪。

我試圖用這個方法:

UPDATE employee 
SET salary = salary * '1,06' 
WHERE emptype = 'L'; 

,我得到一個錯誤信息錯誤代碼:1292截斷不正確DOUBLE值:「1.06」

當我嘗試來形容員工;

我能看到工資int類型(11)

誰能告訴我做了什麼錯誤的,正確的作弄我是怎麼了,是不是可以對當前值增加的6%,在不改變方式?

+1

''1,06''是一個字符串,不是整數。貨幣數據也不應該存儲在浮點型字段中。某些時候你會得到不可思議的結果。貨幣值應該是一個小數,或者至少是一個定點整數。 –

+1

mysql希望小數點分隔符是。 (點)而不是(逗號)。請參閱http://stackoverflow.com/questions/8669212/change-decimal-separator-in-mysql – GregA100k

回答

3

應該是這樣......

UPDATE employee 
SET salary = salary * 1.06 
WHERE emptype = 'L'; 

...相反。不僅'1,06'是一個字符串 - 它是一個字符串,它不會丟失一些數據(換句話說,不會丟失數據),因爲逗號不被視爲小數部分分隔符 - 點是。

而這正是MySQL在這個錯誤信息中告訴你的。這只是數字和它可能錯過的字符串表示之間的細微差別。