首頁  >  問答  >  主體

mysql - sql中update语句 and 和直接where语句的区别是什么?

  1. 现在我有如下两条sql请问有什么区别

update customer set moeny = 100 and balance >= 100

udpate customer set money =100 where balance >= 100

PHP中文网PHP中文网2766 天前650

全部回覆(3)我來回復

  • 高洛峰

    高洛峰2017-04-17 13:49:50

    先說正確的寫法

    udpate customer set money  =100 where balance >= 100

    所有balance >=100 的money=100

    再說錯誤的

    update customer set moeny = 100 and balance >= 100

    這個錯誤很嚴重,会把全局的money变为默认值,通常是0

    原因是:沒有where則為全域set ,set裡面多個設定方式是採用',';如果用了and 會認為是對money的設定,money = (100 and balance >=100),但是,這個表達式的值無法被識別,會變成預設值。

    因此:全局的money變成了預設值,很坑爹的,delete和update千万记得加where,尤其update,因为delete还有提醒

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 13:49:50

    原來是這樣

    回覆
    0
  • 怪我咯

    怪我咯2017-04-17 13:49:50

    update customer set moeny = 100 and balance >= 100;
    =>
    update customer set moeny = (100 and balance >= 100);

    也就是說 moeny全部設為1 或0.

    回覆
    0
  • 取消回覆