1. 程式人生 > >更新同一張表的整列字段

更新同一張表的整列字段

pro 存在 sql format sele log pos 本質 mysq

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

這裏記錄下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中的約束條件,使兩列中的每一條數據都一一對應,這樣即可完成更新。

更新同一張表的整列字段