MySQL中的FETCH
語句用于從結果集中檢索數據。它通常與SELECT
查詢一起使用,以獲取查詢返回的多個結果。FETCH
語句可以用于遍歷結果集,并一次檢索一行數據。
以下是FETCH
語句的基本語法:
FETCH [INTO OUTVAR] FROM tbl_name WHERE condition [LIMIT offset, row_count];
INTO OUTVAR
:可選部分,用于將檢索到的列值存儲到變量中。OUTVAR
必須是一個用戶定義的變量。tbl_name
:要從中檢索數據的表的名稱。condition
:可選部分,用于過濾結果集。LIMIT offset, row_count
:可選部分,用于限制檢索的行數。offset
表示從結果集的第幾條記錄開始檢索,row_count
表示要檢索的記錄數。以下是一個簡單的示例,演示如何使用FETCH
語句從名為employees
的表中檢索數據,并將結果存儲到變量中:
DECLARE @name VARCHAR(50), @age INT;
FETCH INTO @name, @age FROM employees WHERE age > 30;
SELECT @name AS Name, @age AS Age;
在這個示例中,我們聲明了兩個變量@name
和@age
,并使用FETCH
語句從employees
表中檢索年齡大于30的員工的姓名和年齡。然后,我們使用SELECT
語句輸出檢索到的值。
需要注意的是,FETCH
語句通常與WHILE
循環一起使用,以便遍歷整個結果集。以下是一個使用WHILE
循環和FETCH
語句的示例:
DECLARE @name VARCHAR(50), @age INT;
DECLARE cur CURSOR FOR SELECT name, age FROM employees;
OPEN cur;
FETCH NEXT FROM cur INTO @name, @age;
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @name AS Name, @age AS Age;
FETCH NEXT FROM cur INTO @name, @age;
END
CLOSE cur;
DEALLOCATE cur;
在這個示例中,我們聲明了一個游標cur
,用于從employees
表中檢索數據。然后,我們使用OPEN
語句打開游標,并使用FETCH
語句檢索第一行數據。接下來,我們使用WHILE
循環遍歷結果集,并在每次迭代中使用SELECT
語句輸出檢索到的值。最后,我們使用CLOSE
和DEALLOCATE
語句關閉游標并釋放相關資源。