有時候,我們需要複製某個欄位一整列的資料到另外一個新的欄位中,很簡單,SQL可以這麼寫:
UPDATE tb_1 SET content_target = content_source;
大概寫法如下:
Update {your_table} set {source_field} = {object_field} WHERE cause
有Navicat等工具更好,可以直接選取一列數據,拷貝貼到你需要的列中。如果是同一個表那沒什麼問題,如果是新表,請保持它們的行數是一致。如果行數不一致,你可以新建一個表,再把列拷貝進去,這樣id數也會保持一致。
有時候這些MySQL介面工具會報錯,這時候用命令列比較好。例如複製一個表格字段資料到另外一個表格的字段,可以這麼寫:
UPDATE tb_1 INNER JOIN tb_2 ON tb_1.tid = tb_2.tid SET tb_1.tcontent = tb_2.tcontent
下面是一個實際例子,將PHPCMS已產生的靜態頁面的連結寫入phpcms_content表中的url字段:
先這樣拼湊出需要的url字段列。
SELECT CONCAT(FROM_UNIXTIME(inputtime,'%Y/%m%d'), '/', contentid, '.html') AS dt FROM phpcms_content ORDER BY contentid DESC
然後再查詢編輯器(navicat)中,將整段複製拷貝到phpcms_content表中的url欄位即可。