我正在进行一些Mysql任务,并被要求:
所有作为经理的员工(领导者,类型'L')的薪水涨幅为6%。
我试图使用这种方法:
UPDATE employee
SET salary = salary * '1,06'
WHERE emptype = 'L';
我收到错误消息错误代码:1292。截断错误的DOUBLE值:'1,06'
当我尝试描述员工时;
我可以看到薪水为Type int(11)
有人可以说出我做错了什么以及正确的编码是怎样的,并且可以在不更改类型的情况下在当前值上添加6%吗?
答案 0 :(得分:3)
应该是这个......
UPDATE employee
SET salary = salary * 1.06
WHERE emptype = 'L';
......相反。不仅'1,06'
是一个字符串 - 它是一个字符串,不能在不丢失某些数据(换句话说,正在处理)的情况下强制转换为相应的数值,因为逗号不被视为小数部分分隔符 - 一个点。
这正是MySQL在此错误消息中告诉您的内容。这只是你可能错过的数字和字符串表示之间的细微差别。