mysql - SQL - 将特定 ID 列表插入到表中

标签 mysql sql oracle

我有一个返回主键列表 (user_id) 的 Select 语句。

select user_id from myttable
where <some-condition>;

然后我想为每个从前一个 Select 返回的 ID 插入一个新行。我可以在单个 SQL 查询中执行此操作吗?可以是这样的吗?看起来很像是我需要以某种方式在这里循环。

insert into mytable 
values (user_id, value1, value2, value3, value4, value5)
where user_id in 
(select user_id from myttable
    where <some-condition>)

value1, value2, ..., value5 对于所有插入都是相同的,除了 user_id。 我本可以执行“更新”而不是插入,但我需要保留旧行以用于其他目的。

到目前为止,我所做的只是得到一个 user_id 列表,然后在 Java 中遍历该列表并逐一插入。

最佳答案

insert into mytable(user_id,col1,col2) 
select user_id,'static_val1','static_val2' 
from myttable
where <some-condition>

关于mysql - SQL - 将特定 ID 列表插入到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33225475/

相关文章:

mysql - 通过ActiveRecord查询MySQL错误

mysql - 按部门显示高于平均工资的部分

sql - 3表SQL查询

java - 如何将SQL排序规则设置映射到Java比较器?

java - JPA 在工作单元克隆中遇到 Null 或零主键

sql - Oracle存储过程中的UNION

mysql - 在带有 LIKE 的 CASE 语句中使用 GROUP_CONCAT 列别名

MYSQL 查询具有设定条件的表,如果满足第二个条件,则从另一个表中获取行并继续

mysql - 将键/值元作为列添加到 sql 查询

sql - 检查 PL/SQL block 中的表中是否存在行的正确方法