回覆列表
  • 1 # 使用者6181484180424

    mysql批次更新產生的原因自然是因為一條條資料去更新會降低效率,導致效能變差,其二就是一條條資料更新會導致寫sql語句麻煩,下面我將介紹2種批次更新的update語句

    1:建立臨時表,先更新臨時表,然後從臨時表中update即可

    一:建立臨時表,並將資料中轉到臨時表:

    create table table_tmp (id int(8), cloumn varchar(20));

    insert into table_tmp values (1,"a"), (2, "b"), (3, "c");

    二:從臨時表用update語句對其目標表進行批次更新

    update table_target set table_target.cloumn = table_tmp.cloumn where table_target.id= table_tmp.id

    2:使用when...then語句進行批次更新

    UPDATE table_own SET

    cloumn_own= CASE id

    WHEN 1 THEN "a"

    WHEN 2 THEN "b"

    WHEN 3 THEN "c"

    END

    WHERE id IN (1,2,3);

    這個批次更新語句的意思就是說,更新cloumn_own欄位,如果id=1 則cloumn_own=a,如果id=2 則cloumn_own=b,如果id=3 則cloumn_own=c

    記住,其實end 後面的where語句是不可必需的,但最好是帶上

    如果不加where條件,會使整個表的資料更新,不滿足條件的對應的值會設定成預設值(導致你執行的前面n-1次都是無效,保留的是第n次)

    帶上where條件的話,就不會出現這種情況了

  • 中秋節和大豐收的關聯?
  • 旅遊管理好就業嗎?