當前位置:首頁 » 編程語言 » 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為該存儲過程的參數,如果有多個參數,使用「,」分開就可以了,這也是存儲過程調用另一個存儲過程的一種方法。

熱點內容
安卓用什麼和電腦傳圖片 發布:2024-07-27 09:02:07 瀏覽:288
存儲過程就是 發布:2024-07-27 08:56:51 瀏覽:131
c語言高級試題 發布:2024-07-27 08:48:30 瀏覽:282
ip伺服器世界上有幾台 發布:2024-07-27 08:46:18 瀏覽:394
金立手機怎麼清理緩存 發布:2024-07-27 08:38:50 瀏覽:311
iphone文件夾不顯示 發布:2024-07-27 08:18:05 瀏覽:774
y510p固態硬碟做緩存 發布:2024-07-27 07:59:34 瀏覽:128
奶塊為什麼進伺服器會排隊 發布:2024-07-27 07:57:15 瀏覽:691
資料庫表標識 發布:2024-07-27 07:50:00 瀏覽:923
python元組個數 發布:2024-07-27 07:49:23 瀏覽:236