mysql批量update的兩種方法

2022-02-18 22:25:20 字數 825 閱讀 8734

頭兒分了乙個小任務,讓修改迴圈呼叫dao層的那些不啦不啦不啦,鑑於之前寫過批量更新的玩意,so 很快**就修改完了,but 測的時候發現總是報錯,很詭異,mmp 萬分不解,以前就是這麼寫的,為嘛在這個專案就gg了?

後來還是廣大人民群眾給我指了條明道。ok,let us see

方法一:

update $

tenant_id = #,

lg_id = #,

route_lg_id = #,

.....

where dsps_proc_id = #;

這就是我最先想到的,直接迴圈,構造出多條update語句 但是,很不幸的是 mysql預設不支援這種寫法,其實它是不支援多條以『;』分割的sql

解決方式:在jdbcurl配置追加:allowmultiqueries=true

方法二:

update $

when dsps_proc_id=# then #

when dsps_proc_id=# then #

when dsps_proc_id=# then #

when dsps_proc_id=# then #

.....

where dsps_proc_id in

#方法二據說效率高,其實不然,經過測試,發現方法二的速度明顯慢與方法一,因為引數太多,使用case when 則每個引數都會迴圈,so we checked the first method .

mysql批量update資料優化

有一張表goods中有20w條資料,現在需要把某個欄位的值做md5加密後更新。一條一條迴圈更新效能差不說,還容易造成資料庫阻塞。set time limit 0 ini set memory limit 1g mysqli new mysqli 127.0.0.1 root root wx 3306...

MySql批量更新語句(UPDATE)

下面建立乙個名為 bhl tes 的資料庫,並建立名為 test user 的表,字段分別為 id age name create database ifnot exists bhl test 檢視結果 檢視結果 張三 18 男 趙四 17 女 劉五 16 男 周七 19 女 檢視結果 張三 whe...

批量UPDATE的操作

有乙個簡單的業務需求,要根據另外乙個表的id去更新這張表的sys為scott 要更新 w記錄。sql create index t idx1 on t merge1 object id index created.sql create index idx t on t merge2 object i...