- 我想從 中的多行復制多列(不是全部)
source_table,并destination_table為單行中的每組值創建一個新行。 - 所以在這個例子中,應該在 中創建 5 個新行
destination_table,每行都設定了三個欄位:
INSERT INTO destination_table (source_id, foo_id, bar)
VALUES(
(SELECT id, foo_id, bar FROM source_table WHERE id=399274),
(SELECT id, foo_id, bar FROM source_table WHERE id=399279),
(SELECT id, foo_id, bar FROM source_table WHERE id=380409),
(SELECT id, foo_id, bar FROM source_table WHERE id=400037),
(SELECT id, foo_id, bar FROM source_table WHERE id=401026)
);
但這會導致錯誤:
ERROR 1241 (21000): Operand should contain 1 column(s)
- 我仔細閱讀了許多處理類似問題的文章,但找不到具體的答案。
uj5u.com熱心網友回復:
使用 insert...select 代替 insert...values 語法:
INSERT INTO destination_table (source_id, foo_id, bar)
SELECT id, foo_id, bar FROM source_table
WHERE id in (399274,399279,380409,400037,401026);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/394752.html
