有沒有一種方法可以插入來自select-query的預設值和值? 例如:MySQL INSERT INTO ... VALUES和SELECT
INSERT INTO table1 VALUES ("A string", 5, [int]).
我有「的字符串」和5號的價值,但我已經找到從選擇這樣的[INT值:
SELECT idTable2
FROM table2
WHERE ...
那給我這個ID放在table1裏面。
如何合併成一個語句?
有沒有一種方法可以插入來自select-query的預設值和值? 例如:MySQL INSERT INTO ... VALUES和SELECT
INSERT INTO table1 VALUES ("A string", 5, [int]).
我有「的字符串」和5號的價值,但我已經找到從選擇這樣的[INT值:
SELECT idTable2
FROM table2
WHERE ...
那給我這個ID放在table1裏面。
如何合併成一個語句?
使用insert ... select
查詢,並把已知值在select
:
insert into table1
select 'A string', 5, idTable2
from table2
where ...
嘗試以下操作:
INSERT INTO table1
SELECT 'A string', 5, idTable2 idTable2 FROM table2 WHERE ...
只使用子查詢就在那裏,如:
INSERT INTO table1 VALUES ("A string", 5, (SELECT ...)).
+1,提供了一個如何使用'VALUES'語法的例子。 – EleventyOne 2013-12-26 23:22:40
這種方法可能會給出一個錯誤,比如「多於一行」 – 2014-03-20 09:10:27
它應該是「INSERT INTO table1 VALUES(」A string「,5,(SELECT ... LIMIT 1))。」 – Rahnzo 2015-09-22 15:38:03
試試這個:
INSERT INTO table1 SELECT "A string", 5, idTable2 FROM table2 WHERE ...
INSERT INTO table1
SELECT "A string", 5, idTable2
FROM table2
WHERE ...
參見:http://dev.mysql.com/doc/refman/5.6/en/insert-select.html
INSERT INTO table1 (col1, col2)
SELECT "a string", 5, TheNameOfTheFieldInTable2
FROM table2 where ...
試試這個
INSERT INTO TABLE1 (COL1 , COL2,COL3) values
('A STRING' , 5 , (select idTable2 from Table2))
where ...
「SELECT」表中的多個列怎麼樣?如果我嘗試使用多個列,我會得到'操作數應該包含1列'。 – 2014-02-13 01:54:44
所有其他的答案來解決這個問題,我的回答工作方式與別人一樣,只是一個更說教方式(這對MySQL工作...不知道其他SQL服務器):
INSERT INTO table1 SET
stringColumn = 'A String',
numericColumn = 5,
selectColumn = (SELECT idTable2 FROM table2 WHERE ...);
您可以參考MySQL文檔:INSERT Syntax
INSERT INTO table_name1 (id, name, address, contact_number) SELECT id, name, address, contact_number FROM table_name2;
我用這種方法發現的一個問題是,如果'SELECT'返回零個記錄,那麼該語句成功,但沒有數據是'INSERT'。 – 2014-02-13 01:52:18
@ NeilC.Obremski:是的,但這只是一個問題,如果你期望結果是別的。如果你想在這種情況下發生錯誤,你可以使用子查詢。 – Guffa 2014-02-13 02:02:27
非常感謝你,我在網上搜索這個 – ComradeJoecool 2017-10-23 16:41:04