84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
现在我有如下两条sql请问有什么区别?
update customer set moeny = 100 and balance >= 100
udpate customer set money =100 where balance >= 100
认证高级PHP讲师
所有balance >=100 的money=100
这个错误很严重,会把全局的money变为默认值,通常是0
会把全局的money变为默认值,通常是0
原因是:没有where则为全局set ,set里面多个设置方式是采用',';如果用了and 会认为是对money的设定,money = (100 and balance >=100),但是,这个表达式的值无法识别,会变为默认值。
因此:全局的money变成了默认值,很坑爹的,delete和update千万记得加where,尤其update,因为delete还有提醒。
delete和update千万记得加where,尤其update,因为delete还有提醒
原来是这样
update customer set moeny = 100 and balance >= 100;=>update customer set moeny = (100 and balance >= 100);
update customer set moeny = (100 and balance >= 100)
也就是说 moeny全部设为1 或0.
先说正确的写法
所有balance >=100 的money=100
再说错误的
这个错误很严重,
会把全局的money变为默认值,通常是0
原因是:没有where则为全局set ,set里面多个设置方式是采用',';如果用了and 会认为是对money的设定,money = (100 and balance >=100),但是,这个表达式的值无法识别,会变为默认值。
因此:全局的money变成了默认值,很坑爹的,
delete和update千万记得加where,尤其update,因为delete还有提醒
。原来是这样
update customer set moeny = 100 and balance >= 100
;=>
update customer set moeny = (100 and balance >= 100)
;也就是说 moeny全部设为1 或0.