当前位置:首页 » 编程语言 » sql循环for

sql循环for

发布时间: 2023-02-09 09:51:59

⑴ 我想用for循环一个sql语句并且限制循环数量怎么实现,请高手帮忙

for($i=0;$i<10;$i++){
$row=mysql_query("select * from level1");

}
这样就是循环10次了。如果要其他 数修改$i<多少就行了。不过不建议使用循环sql。效率不好。如果是正式网站,容易卡死

⑵ mysql sql中流程控制有for循环吗

MySQL不支持FOR loops循环。

只有LOOP循环:

[begin_label:] LOOP

statement_list

END LOOP [end_label]

CREATE PROCEDURE doiterate(p1 INT)

BEGIN

label1: LOOP

SET p1 = p1 + 1;

IF p1 < 10 THEN

ITERATE label1;

END IF;

LEAVE label1;

END LOOP label1;

SET @x = p1;

END;

LOOP实现了一个简单的循环结构,允许重复执行语句列表,该列表由一个或多个语句组成,每个语句以分号(;)分隔符结束。 循环中的语句将重复执行,直到循环终止。 一般情况,通过LEAVE终止循环。 在函数中,也可以使用RETURN,它完全退出函数,也同时终止循环。

(2)sql循环for扩展阅读

mysql流程控制结构:

顺序结构:程序从上往下依次执行,

分支结构:程序从两条或多条路径中选中一条去执行,

循环结构:程序在满足一定条件的基础上,重复执行一段代码。

分支结构

1、if函数

功能:实现简单的双分支

语法:

if(表达式1,表达式2,表达式3)

执行顺序:

如果表达式1成立,则if函数返回表达式2的值,否则返回表达式3的值

应用:任何地方(在begin end中或外面都可以)

2、case结构

情况1:类似于java中的switch语句,一般用于实现等值判断

语法:

CASE 变量|表达式|字段

WHEN 要判断的值 THEN 返回的值1或语句1;

WHEN 要判断的值 THEN 返回的值2或语句2;

...

ELSE 要返回的值n或语句n;

END CASE;

情况2:类似于java中的多重IF语句,一般用于实现区间判断

语法;

CASE

WHEN 要判断的条件1 THEN 返回的值1或语句1;

WHEN 要判断的条件2 THEN 返回的值2或语句2;

...

ELSE 要返回的值n或语句n;

END CASE;

⑶ 我想用PLSQL写一个FOR循环

FOR I IN 1..10 LOOP
IF I<>6 AND I<>8 THEN
INSERT INTO MESSAGE(results) VALUES(I);
END IF;
END LOOP;
COMMIT;

⑷ SQL 简单高效的使用FOR循环批量操作数据

//自定义字符串
declare @orderNum varchar(255)
//创建虚拟表
create table #ttableName(id int identity(1,1),Orders varchar(255))
//自定义自然数和行数
declare @n int,@rows int
//将要操作的数据查询出来,插入到创建的虚拟表钟
insert #ttableName(orders) select userID from DEV_USER where USERID not in (select CODE_OPT from SYS_MKQXOPT where SYS_CODE = '05')

--select @rows=count(1) from pe_Orders
//将行数赋予rows自定义行数
select @rows =@@rowcount
//自然数n赋值为1
set @n=1
//while循环,当自然数n小于等于行数时执行循环
while @n<=@rows
//开始
begin
//此处操作虚拟表查出第n行数据,用于操作数据
insert into SYS_MKQXOPT (CODE_OPT,SYS_CODE,Type) values ((select Orders from #ttableName where id=@n),'05','1')
//打印字符串
print (@OrderNum)
//n即行数+1
select @n=@n+1
//结束
end
//删除虚拟表
drop table #ttableName

⑸ sqlserver中怎样使用游标for循环

给你举个例子

利用游标循环更新、删除MemberAccount表中的数据DECLARE My_Cursor CURSOR --定义游标FOR (SELECT * FROM dbo.MemberAccount) --查出需要的集合放到游标中OPEN My_Cursor; --打开游标FETCH NEXT FROM My_Cursor ; --读取第一行数据WHILE @@FETCH_STATUS = 0 BEGIN --UPDATE dbo.MemberAccount SET UserName = UserName + 'A' WHERE CURRENT OF My_Cursor; --更新 --DELETE FROM dbo.MemberAccount WHERE CURRENT OF My_Cursor; --删除 FETCH NEXT FROM My_Cursor; --读取下一行数据 ENDCLOSE My_Cursor; --关闭游标DEALLOCATE My_Cursor; --释放游标GO

⑹ sql for循环比如说@Num<=5, @Num可能为1,3,4,这样的数字

while @Num<=5
begin
需要处理的语句...
set @Num = @Num + 1
end

⑺ 在sql server中循环语句 for要怎么使用

sql server里有循环语句,在sqlserver 数据库中,while循环语句是最常用的语句之一,for指定次数用的很少。比如:
SQL循环语句
declare @i int
set @i=1
while @i<30
begin
insert into test (userid) values(@i)
set @i=@i+1
end

while 条件
begin
执行操作
set @i=@i+1
end
WHILE
设置重复执行 SQL 语句或语句块的条件,只要指定的条件为真,就重复执行语句,可以使用 BREAK 和 CONTINUE 关键字在循环内部控制 WHILE 循环中语句的执行。
语法
WHILE Boolean_expression
{ sql_statement | statement_block }
[ BREAK ]
{ sql_statement | statement_block }
[ CONTINUE ]
参数
Boolean_expression
返回 TRUE 或 FALSE 的表达式。如果布尔表达式中含有 SELECT 语句,必须用圆括号将 SELECT 语句括起来。
{sql_statement | statement_block}
Transact-SQL 语句或用语句块定义的语句分组,若要定义语句块,请使用控制流关键字 BEGIN 和 END。
BREAK

⑻ sqlserver中怎样使用游标for循环

给你举个例子

利用游标循环更新、删除MemberAccount表中的数据
DECLARE My_Cursor CURSOR --定义游标
FOR (SELECT * FROM dbo.MemberAccount) --查出需要的集合放到游标中
OPEN My_Cursor; --打开游标
FETCH NEXT FROM My_Cursor ; --读取第一行数据
WHILE @@FETCH_STATUS = 0
BEGIN
--UPDATE dbo.MemberAccount SET UserName = UserName + 'A' WHERE CURRENT OF My_Cursor; --更新
--DELETE FROM dbo.MemberAccount WHERE CURRENT OF My_Cursor; --删除
FETCH NEXT FROM My_Cursor; --读取下一行数据
END
CLOSE My_Cursor; --关闭游标
DEALLOCATE My_Cursor; --释放游标
GO

⑼ 对SQL 插入语句进行for循环 可以吗

理论上应该能成功。检查一下:循环插入是否违反约束(比如主键列之类);在循环开始前Open,结束后Close比较好,节省时间;试试把一次执行改成单独完整的Sub子程序,再for循环调用;试试一次性拼接多个sql语句,分号隔开。

⑽ 如何使用for循环更新sql 语句

CREAT PROCEDURE tester
AS
BEGIN
SET NOCOUNT ON;
DECLARE @userId varchar(50)
DECLARE @count int
SET @count = 0
SELECT @count = count(*) FROM UserService_User WHERE Account like '%111%'
WHILE @count > 0
BEGIN
SELECT @userId = Id FROM UserService_User WHERE Account like '%111%'
exec UserService_RemoveUserByUserId @userId
SET @count = @count -1
END
END
说明:
1、此存储过程在SQL SERVER 2005上测试通过,值得注意的是,循环体中,语句是使用BEGIN……END包括的,而不是网络上常说的WHILE ……END WHILE结构,其他的循环语句,如LOOP ……UNTIL……END LOOP也不能通过编译,也许是版本的问题,但在SQL SERVER2005中,循环体使用BEGIN……END就可以,而不能使用网络上常说的WHILE ……END WHILE结构。
2、循环体中 UserService_RemoveUserByUserId 是一个存储过程的名称,@userId为该存储过程的参数,如果有多个参数,使用“,”分开就可以了,这也是存储过程调用另一个存储过程的一种方法。

热点内容
db2新建数据库 发布:2024-09-08 08:10:19 浏览:170
频率计源码 发布:2024-09-08 07:40:26 浏览:778
奥迪a6哪个配置带后排加热 发布:2024-09-08 07:06:32 浏览:100
linux修改apache端口 发布:2024-09-08 07:05:49 浏览:208
有多少个不同的密码子 发布:2024-09-08 07:00:46 浏览:566
linux搭建mysql服务器配置 发布:2024-09-08 06:50:02 浏览:995
加上www不能访问 发布:2024-09-08 06:39:52 浏览:811
银行支付密码器怎么用 发布:2024-09-08 06:39:52 浏览:513
苹果手机清理浏览器缓存怎么清理缓存 发布:2024-09-08 06:31:32 浏览:554
云服务器的优点与缺点 发布:2024-09-08 06:30:34 浏览:734