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.