昨天在MYSQL数据库上执行了一个命令,一下子走神了,把select后面的条件都复制过来,忘记复制where了,原句应该为:update tb set value = value * 0.1 where datetime >= '2016-01-01' and DATETIME < '2016-03-01' and (DATE_FORMAT(datetime,'%k') >= 22 or DATE_FORMAT(datetime,'%k') < 6)一不小心写成了update tb set value = value * 0.1 and datetime >= '2016-01-01' and DATETIME < '2016-03-01' and (DATE_FORMAT(datetime,'%k') >= 22 or DATE_FORMAT(datetime,'%k') < 6)
然后竟然语句都执行了,我记得mssql还是会报错的。更坑的是我的VALUE值全部变成了0,之前value里的数值都没有了。我是UPDATE value * 0.1,怎么会有这样的结果呢?
然后竟然语句都执行了,我记得mssql还是会报错的。更坑的是我的VALUE值全部变成了0,之前value里的数值都没有了。我是UPDATE value * 0.1,怎么会有这样的结果呢?
'2016-03-01' and (DATE_FORMAT(datetime,'%k') >= 22 or DATE_FORMAT(datetime,'%k') < 6)其实也就是个正常的表达式计算1+ 2*3 AND 5<2 OR 7>6 这个表达式在MYSQL中可以被正常处理。
'2016-03-01' and (DATE_FORMAT(datetime,'%k') >= 22 or DATE_FORMAT(datetime,'%k') < 6)意思是因为这段话返回的是0,所有我所有的值都变成了0了对么?
'2016-03-01' and (DATE_FORMAT(datetime,'%k') >= 22 or DATE_FORMAT(datetime,'%k') < 6)
from tb