生成"假"查询中的记录

时间:2015-04-15 15:23:59

标签: mysql sql

我有一个非常基本的陈述,例如:

SELECT pet, animal_type, number_of_legs 
FROM table

但是,在table当前的位置,我想插入一些假数据,如下所示:

rufus       cat     3
franklin    turtle  1
norm        dog     5

是否可以“生成”这些虚假记录,将每个值与相应字段相关联,从查询中将它们作为查询结果返回?

2 个答案:

答案 0 :(得分:7)

SELECT pet, animal_type, number_of_legs FROM table
union select 'rufus',    'cat',    3
union select 'franklin', 'turtle', 1
union select 'norm',     'dog',    5

这为您提供了table的内容加上您想要的3条记录,避免重复,如果重复可以,则将union替换为union all

编辑:根据你的评论,对于tsql,你可以这样做:

select top 110 'franklin', 'turtle', 1
from sysobjects a, sysobjects b          -- this cross join gives n^2 records

请务必选择一个表格,其中n ^ 2大于所需记录或反复交叉加入

答案 1 :(得分:3)

我不完全确定你要做什么,但MySQL完全有能力选择" mock"数据并将其打印在表格中:

SELECT "Rufus" AS "Name", "Cat" as "Animal", "3" as "Number of Legs" 
UNION 
SELECT "Franklin", "Turtle", "1" 
UNION 
SELECT "Norm", "Dog", "5";

哪会导致:

+----------+--------+----------------+
| Name     | Animal | Number of Legs |
+----------+--------+----------------+
| Rufus    | Cat    | 3              |
| Franklin | Turtle | 1              |
| Norm     | Dog    | 5              |
+----------+--------+----------------+

以这种方式执行此查询可防止实际上必须将信息保存在临时表中,但我不确定它是否是正确的处理方式。