mysql 迴圈 MySQL實現for迴圈逐個遍歷

2021-10-25 14:01:43 字數 1730 閱讀 7475

mysql實現for迴圈逐個遍歷

 0 2443

紅薯2019/6/23 21:18:03

sql:結構化查詢語言,包括資料定義語言(ddl)如:create、drop、alter等;資料操作語言(dml)如:insert、update、delete之類;資料查詢語言(dql)如:select語句;資料控制語言(dcl)如:grant、revoke、commit、rollback等。

t-sql:transact-sql,為sql的語言的增強版,加入了程式語言中的if,while 等流程控制語法,同時可以使用函式功能。

[pre]

delimiter // # 定義//為一句sql的結束標誌,取消;的所代表的意義

drop procedure if exists test; # 如果存在名字為test的procedure則刪除

create procedure test() # 建立(建立函式使用的關鍵字為function 函式名())

begin

declare old_pro varchar(30); # 宣告變數

declare temp_id int;

declare flag int default 0;

# 這是重點,定義乙個游標來記錄sql查詢的結果(此處的知識點還有sql的模糊查詢,見補充)

declare s_list cursor for select id, province from temp_table where like "%省";

# 為下面while迴圈建立乙個退出標誌,當游標遍歷完後將flag的值設定為1

declare continue handler for not found set flag=1;

open s_list; # 開啟游標

# 將游標中的值賦給定義好的變數,實現for迴圈的要點

fetch s_list into temp_id, old_pro;

while flag <> 1 do

# sql提供了字串的切分,有left、right、substring、substring_index

# 在t-sql中,區域性變數必須以@作為字首,宣告方式set,select還有點差別

set @temp_s = substring_index(old_pro, "省", 1);

# 根據id的唯一性,利用當前查詢到的記錄中的字段值來實現更新

update temp_table set province=@temp_s where id=temp_id;

# 游標往後移(此處的游標是不是讓你想起了c裡面的指標)

fetch s_list into temp_id, old_pro;

end while;

#select * from temp_table;

close s_list; # 關閉游標

enddelimiter ; # 重新定義;為一句sql的結束標誌,取消//的所代表的意義

call test(); # 呼叫

[/pre]

效果處理前 vs 處理後

img[/layedit/img/201906232117092628.png]

sql具有四種匹配模式

1、%:表示零個或多個字元;

2、_:表示任意單個字元;

3、:表示括號內所列字元中的任意乙個(類似正則);

4、[^]:取反(類似正則);

注:若匹配中包含萬用字元則使用「」將特殊字元括起來即可(相當於轉義)

mysql迴圈插入語句 MySQL實現迴圈插入功能

mysql 不支援直接寫sql 語句實現迴圈插入功能.想要實現該功能的方法有 用其他語言操控mysql或者用儲存過程來實現兩種。mysql 不支援直接寫sql 語句實現迴圈插入功能.想要實現該功能的方法有 用其他語言操控mysql或者用儲存過程來實現兩種。1 儲存過程實現 a 表結構 create ...

mysql迴圈遍歷獲取 MySql多表迴圈遍歷更新

先給大家解釋解釋發表這篇博文的主要思想是 mysql資料庫中存在大量的表結構,而且這些表都存在乙個共同點,就是表中都有相同字段,比如id,name,city,adress,lat,lng。表中字段id,name,city,adress不允許為空,所以表中這幾個欄位的資料都是已經賦給實值的,而lat與...

mysql 迴圈插入 mysql 迴圈批量插入

背景 前幾天在mysql上做分頁時,看到有博文說使用 limit 0,10 方式分頁會有丟資料問題,有人又說不會,於是想自己測試一下。測試時沒有資料,便安裝了乙個mysql,建了張表,在建了個while迴圈批量插入10w條測試資料的時候,執行時間之長無法忍受,便查資料找批量插入優化方法,這裡做個筆記...