先需要先把需要更新的整列結果查詢出來。
這裡記錄下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...