2011-03-20 186 views
15

我想將2行插入到同一個表中。第一個將從select中輸入數據,第二個將使用數據變量。我可以插入第一行,但無法插入多行。使用select插入多行

$ partner_id是將行彼此鏈接。對於這個即時通訊使用PHP中生成的32char值。有沒有辦法用mysql將edit_partner_id設置爲插入的第一行的id,或者這是不可能的,因爲在獲得最後一個id之前必須創建第一行?

是否有可能爲此添加更新,還是必須在單獨的查詢中運行此更新?

$sql = "INSERT INTO edits_customers (customer_id, creator_id, firstname, surname, 
      house_no, address_1, address_2, address_3, city, county, postcode, 
      country, email, home_tel, mobile_tel, work_tel, notes, edit_type, 
      edit_partner_id) 
     (SELECT *, 'before', '{$partner_id}' FROM customers WHERE customers.id = 123), 
     ('{$var1}', '{$var2}', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 
      '', 'after', $partner_id)"; 

感謝

回答

28

如果我正確理解你的問題,在這裏你要插入另一個表中的一些數據,你自己提供的一些數據,你應該能夠使用於做這樣的事UNION:

INSERT INTO SomeTable (Col1, Col2, Col3) 
SELECT Val1, Val2, Val3 FROM SomeOtherTable 
UNION 
SELECT 'MyProvidedVal1', 'MyProvidedVal2', 'MyProvidedVal3' 

希望幫助...

+0

只是工作。謝謝 – arbme 2011-03-20 05:27:01

+0

我沒有在文檔中找到解決方案,所以非常感謝你:) – 2017-07-07 13:42:46