SQL查询在没有循环的情况下插入相同的值1000次

时间:2015-07-22 13:06:22

标签: mysql sql sql-server

例如,如果我有字符串'sunday',那么我想仅使用SQL在1000行中插入相同的值;不使用循环。

6 个答案:

答案 0 :(得分:7)

如果您不想使用另一张桌子,可以使用:

    INSERT INTO some_table (some_column) 
    SELECT 'Sunday'
    FROM (
        SELECT 1 
        FROM (SELECT 1 UNION SELECT 2) as d1
        JOIN (SELECT 1 UNION SELECT 2) as d2
        JOIN (SELECT 1 UNION SELECT 2) as d3
        JOIN (SELECT 1 UNION SELECT 2) as d4
        JOIN (SELECT 1 UNION SELECT 2) as d5
        JOIN (SELECT 1 UNION SELECT 2) as d6
        JOIN (SELECT 1 UNION SELECT 2) as d7
        JOIN (SELECT 1 UNION SELECT 2) as d8
        JOIN (SELECT 1 UNION SELECT 2) as d9
        JOIN (SELECT 1 UNION SELECT 2) as d10
    ) AS t
    LIMIT 1000

您可以根据所需的限制调整JOIN的数量。

答案 1 :(得分:1)

INSERT INTO some_table(some_column)     SELECT' Sunday'     FROM(         选择1         FROM(SELECT 1 UNION SELECT 2)为d1         JOIN(选择1 UNION SELECT 2)为d2         JOIN(选择1 UNION SELECT 2)为d3         JOIN(选择1 UNION SELECT 2)为d4         JOIN(选择1 UNION SELECT 2)为d5         JOIN(选择1 UNION SELECT 2)为d6         作为d7加入(选择1 UNION SELECT 2)         JOIN(选择1 UNION SELECT 2)为d8         JOIN(选择1 UNION SELECT 2)为d9         JOIN(选择1 UNION SELECT 2)为d10     )AS t     限制1000

答案 2 :(得分:1)

INSERT INTO some_table (some_column) 
SELECT 'Sunday' FROM ( SELECT 1 FROM (SELECT 1 UNION SELECT 2) as d1 

JOIN (SELECT 1 UNION SELECT 2) as d2 JOIN (SELECT 1 UNION SELECT 2) as d3 
JOIN (SELECT 1 UNION SELECT 2) as d4 JOIN (SELECT 1 UNION SELECT 2) as d5 

JOIN (SELECT 1 UNION SELECT 2) as d6 JOIN (SELECT 1 UNION SELECT 2) as d7 
JOIN (SELECT 1 UNION SELECT 2) as d8 JOIN (SELECT 1 UNION SELECT 2) as d9 
JOIN (SELECT 1 UNION SELECT 2) as d10 ) AS t LIMIT 1000

答案 3 :(得分:0)

创建一个包含N行的表格,然后将sunday值与1000行交叉连接。

select A.day_name from number_table
cross join (select 'sunday' as day_name) A
where num <= 1000

答案 4 :(得分:0)

如果您的表已超过1000行,则可以执行

insert into mytable (mycolumn) select "Sunday" from mytablewithmorethan1000 limit 1000

答案 5 :(得分:0)

尝试使用存储过程,

create table thousandvalues (
id int not null auto_increment primary key,
weeks varchar(10)
); 

delimiter //
create procedure showthousand (in num int)
begin
declare i int default 0;
while i < num do
insert into thousandvalues (weeks) values ('sunday');
set i = i + 1;
end while;
end //
delimiter;

call showthousand (1000);

希望它有所帮助。

相关问题