更新同一張表的整列字段

2021-08-15 17:42:42 字數 681 閱讀 1356

先需要先把需要更新的整列結果查詢出來。

這裡記錄下mysql時間的函式:date_format( 欄位名, '%y-%m-%d %h:%i:%s' )  第二個引數是要轉換的格式,因為我本來的格式中有毫秒。

以下是舉例:

轉換的sql :select id as dd, date_format( created, '%y-%m-%d %h:%i:%s' ) created2 from pe_project_list 

整條sql:

update pe_project_list

inner join ( select * from ( select id as dd, date_format( created, '%y-%m-%d %h:%i:%s' ) created2 from pe_project_list ) a ) b on b.dd = pe_project_list.id

set pe_project_list.created = b.created2;

這裡說下為什麼外面還要套一層select,因為不能先select出同一表中的某些值,再update這個表(在同一語句中),所以把select出的結果再通過中間表select一遍,這樣就規避了錯誤。這個問題目前似乎只存在於mysql。

把兩張表(本質上是一張)連起來,再新增set中的約束條件,使兩列中的每一條資料都一一對應,這樣即可完成更新。

Oracle一張表的多個字段更新到另一張表中去

假設表a中有多個字段 province city 需要從b表獲取 兩張表的mobile一樣 總結了幾種寫法。一 update a set a.province select province from b where b.mobile a.mobile update a set a.city sel...

根據一張表去更新另一張表

最近在改乙個專案,由於是別人做好的,很多資料表資訊不全。不得不手工用sql更新資料表。現在又這麼2張表 第一張是管理員表 id 使用者id c id 分公司id p id 部門id name 使用者名稱 第二張是訂單表 id 訂單id com id 訂單所屬銷售的公司id dep id 訂單所屬銷售...

Mysql中更新同一張表的兩個字段,發生併發

innodb lock wait timeout指的是事務等待獲取資源等待的最長時間,超過這個時間還未分配到資源則會返回應用失敗 當鎖等待超過設定時間的時候,就會報如下的錯誤 error 1205 hy000 lock wait timeout exceeded try restarting tra...