mysql - SQL:将多行插入具有静态值的表中

标签 mysql 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 idForeignkey1 from table1 where idForeignkey2 = inidForeignkey2

可以返回 1 到无穷大之间的任何值

我需要做的是将多行插入到 table1 中,使用 var1 作为 idForeignkey2 并使用该 select 语句中的值作为 idForeignkey1。例如,如果 select 语句返回 1,2,3,4 并且 var1 = 6,则应将其插入表中:

idForeignkey1    idForeignkey2
     1                 6
     2                 6
     3                 6
     4                 6   

最佳答案

你可以尝试这样的事情。一条语句就可以做到这一点。

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

关于mysql - SQL:将多行插入具有静态值的表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6822810/

相关文章:

java - 来自 Java 程序的 Sqoop

php - 查询 MySQL 表

mysql - 大表中的正确索引

mysql - 查找薪资表中缺失的员工

php - 使用php和jquery上传

sql - 加入包含多条记录的第二个表,取最新的

sql - 我可以明确强制 SQL Server 不缓存我的查询结果集吗?

mysql - 计算不同列值出现次数的更有效方法?

MySQL SELECT 并返回未知数量的相关外键

sql - Excel 2010通过宏执行SQL语句时卡住