[英]Is it possible to insert values from one table into another AND update field values in same query?
我有兩張桌子。 一個表用作事務歷史記錄,另一個表是成員詳細信息的日志。 運行報表時,我希望將成員詳細信息的各個部分移動到事務歷史記錄中,但還要更新一些原本不存在的字段記錄。
是否可以選擇滿足特定條件的所有記錄,僅將匹配行的片段插入另一個表中並更新單個查詢中的其他字段?
例如:
在表2中,我有成員名稱,注冊日期和memberid。 我想將上述記錄移到表1中,但也將字段(狀態)更新為“已處理”。
注意:我也使用php和pdo連接到mysql數據庫。
這可能在一個查詢中嗎?
您沒有指定要更新的行是否與要插入的行相同。 我假設他們是:
insert into table1
(member_name, date_registered, memberid, status)
select member_name, date_registered, memberid, 'processed'
from table2
where SomeField = MyCriteria
經過深思熟慮后,我決定使用ircmaxell的建議並簡單地運行多個查詢。 它最終不僅使事情變得更容易,而且允許我更容易地自定義我的排序。
正如他上面所說的那樣,“不要陷入更少的陷阱總是更好”
是:
SELECT *, "processed" INTO table2 FROM table1
您將不得不根據表結構進行調整,甚至可能寫出所有字段:
SELECT field1, field2, field3, "processed" INTO table2 FROM table1
值得注意的是,這假設您要寫入表2, 包括已處理的變量(可能我建議使用布爾值?)如果您希望其他表中的“已處理”它將變得更復雜。
編輯:顯然mysql不支持select into so ...
INSERT INTO table2 SELECT field1, field2, field3, "processed" FROM table1
Redfilters代碼有效
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.