mysql select 常量列_不使用临时表,仅使用select实现查询出多行常数

今天在做项目的时候,突然需要insert到数据库中多条记录,但这些记录必须用一条insert语句插入数据库,这时候你会说可以用insert into

XXX select XXX句式,但更让人纠结的是,所有将要被insert 的数据都是常数,即不存在可以被select成多行的表!

倒是需要将一些常数变成多行或多条记录,怎么半呢?

我知道可以用select 1,2,3这种形式将多个常数组合成一行,但是如何将多个常数组合成多行呢?

百度知道上有位仁兄貌似提前遇到了我的问题:

所以就有了如下的方式:

select * from (select 153 union select 154 union select 155)t(oid)

上面一句话返回一张table,名字是t,它只有一列,名字叫oid,table中有三行记录,分别是153,154,155:

Table t

oid

____

|153|

____

|154|

____

|155|

____

下面你应该知道怎么办了吧?

insert into XXX select XXX from(select 153 union select 154 union select 155)t(oid)

使用一条SQL即可实现多行insert。

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2011-04-22 01:26

浏览 1456

评论

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下语句来创建从一个表里查询来的数据的临时表: ``` CREATE TEMPORARY TABLE temp_table AS SELECT * FROM original_table WHERE condition; ``` 在这里,"temp_table"是临时表的名称,"original_table"是要从中查询数据的表的名称,"condition"是查询的条件。 注意,这个临时表只在当前会话中可用,一旦会话结束,临时表就会被自动删除。 ### 回答2: MySQL使用SELECT语句创建从一个表里查询来的数据的临时表非常简单。下面是使用SELECT语句创建临时表的步骤: 1. 使用SELECT语句查询想要的数据,并加上INTO关键字,指定要创建的临时表的名称。例如,我们要创建一个名为temp_table的临时表,可以使用以下语句: ``` SELECT * INTO temp_table FROM original_table WHERE condition; ``` 其中,original_table是要查询的原始表名称,condition是查询的条件。 2. 在SELECT语句中使用INTO关键字后面的表名称将创建一个新的临时表,并将查询结果插入到该临时表中。临时表将具有与原始表相同的和相同的数据类型。 3. 当查询完成后,可以使用正常的SELECT语句从临时表中检索数据,进行进一步的处理。 4. 此时,临时表会像常规表一样存在于数据库中,可以在需要的时候使用或删除。 需要注意的是,临时表的作用范围是会话级别的,即当关闭MySQL会话时,临时表将自动删除。此外,临时表的命名必须以"#"或"@"开头,以避免与其他表重名。 使用SELECT语句创建临时表可以方便地对查询结果进行进一步的操作和处理,同时避免了可能对原始表结构和数据造成的影响。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值