2011-07-25 44 views
0

基本上,我有一些代碼,看起來像這樣:SQL:插入多行入表中的靜態值

while exists (select * from table1 where idForeignkey1 = inidForeignkey2) do 

    set var1 = (select idForeignkey2 from table1 where idForeignkey1 = inidForeignkey2 limit 1); 

    delete from table1 where idForeignkey2 = var1; 

到目前爲止好,只是一個簡單的小foreach循環,從表中刪除行。之後就出現了問題。我有一個select語句喜歡這樣的:

select idForeignkey1 from table1 where idForeignkey2 = inidForeignkey2 

,可以1和無限值

什麼,我需要做的是插入多行成表1,使用VAR1作爲idForeignkey2並且使用與選擇值之間的任何地方返回聲明爲idForeignkey1。例如,如果select語句返回1,2,3,4和var1 = 6,則應將其插入表中:

idForeignkey1 idForeignkey2 
    1     6 
    2     6 
    3     6 
    4     6 

回答

2

您可以嘗試如下所示。一個聲明應該這樣做。

INSERT INTO table1 
SELECT idForeignkey1, 6 
FROM table1 
WHERE idForeignkey2 = inidForeignkey2 
+0

但是,6將是一個變量,var1,將仍然工作? – Josiah

+0

@Josiah,是的,你可以使用該變量的值。 – bobs