【www.gdgbn.com--Mssql】

mssql 与 mysql教程 中while语句使用方法

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

导致从最内层的 while 循环中退出。将执行出现在 end 关键字后面的任何语句,end 关键字为循环结束标记。

continue

使 while 循环重新开始执行,忽略 continue 关键字后的任何语句


文章转载自网管之家:http://www.bitscn.com/pdb/mssql/201010/191381.html

示例代码:
 代码如下:
declare @a int
set @a = 1
while @a<25
begin
insert into demotable (id,item1,item2) values (@a,"abc","123")
set @a = @a + 1
end

mysql中,使用while循环处理数据方法:需要新建为存储过程,直接调用执行存储过程。

示例代码:
 代码如下:
create definer=`root`@`localhost` procedure `newprocedure`()
begin
declare i int;
set i=1;
while i<100 do
insert into demotable (id,item1,item2) values (i,"测试试题","0");
set i = i + 1;
end while;
end;

实例二

mysql>
mysql> delimiter $$
mysql>
mysql> create procedure myproc()
    -> begin
    ->
    ->     declare i int;
    ->     set i=1;
    ->     loop1: while i<=10 do
    ->          if mod(i,2)<>0 then /*even number - try again*/
    ->             select concat(i," is an odd number");
    ->          end if;
    ->          set i=i+1;
    ->     end while loop1;
    -> end$$
query ok, 0 rows affected (0.00 sec)

mysql>
mysql> delimiter ;
mysql> call myproc();

 

本文来源:http://www.gdgbn.com/shujuku/28427/