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.