【发布时间】:2015-10-12 09:11:23
【问题描述】:
例如,如果我有字符串'sunday',那么我想只使用 SQL 在 1000 行中插入相同的值;不使用循环。
【问题讨论】:
-
你需要使用sql循环
-
你能用一个例子解释一下,这样你就可以理解你需要什么了吗?
标签: mysql sql sql-server
例如,如果我有字符串'sunday',那么我想只使用 SQL 在 1000 行中插入相同的值;不使用循环。
【问题讨论】:
标签: mysql sql sql-server
如果你不想使用另一个表,你可以使用:
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 的数量。
【讨论】:
如果你已经有一个超过 1000 行的表,你可以这样做
insert into mytable (mycolumn) select "Sunday" from mytablewithmorethan1000 limit 1000
【讨论】:
插入到 some_table (some_column) 选择“星期天” 从 ( 选择 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 ) 作为吨 限制 1000
【讨论】:
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
【讨论】:
创建一个包含一些 N 行的表,然后将 sunday 值与 1000 行交叉连接。
select A.day_name from number_table
cross join (select 'sunday' as day_name) A
where num <= 1000
【讨论】:
用存储过程试试这样,
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);
希望对你有帮助。
【讨论】: