Mysql

MYSQL 儲存過程從表中獲取整行

  • August 14, 2020

我是 SQL 的初學者,目前正在練習儲存過程的概念。我有一個 Fetch_Marks 表,其中包含 20 條記錄,其中 Student_No 和 Marks 作為列。現在我想為此創建一個儲存過程,其中輸入參數將為 Student_No,當我們輸入輸入時(假設我將 Student_No 設為 1),它應該從 Fetch_Marks 表中獲取該特定學生的行。有什麼解決方法嗎?如果是,請幫忙。

你基本上不需要一個程序。

當您需要除 SQL 之外的“正常”程式以使某些丁字褲變得更加複雜時,使用 CURSOR 和 LOOP 的過程會變得有趣

DROP procedure IF EXISTS `proc_get Student`;

DELIMITER $$
CREATE PROCEDURE `proc_get Student` ( IN _student_no BIGINT)
BEGIN
   SELECT * FROM Fetch_Marks WHERE Student_No  = _student_no;
END$$

DELIMITER ;

但我猜這是某種作業,變數 _student_no 是因為你有一個光學標記,它是一個本地定義的變數

這是另一個範例:在此,我們添加了第二個 IN 變數,並在其中檢查它們是否為 NULL 或 NOT,然後選擇想要的數據

DROP procedure IF EXISTS `proc_get Student`;

DELIMITER $$
CREATE DEFINER=`root`@`%` PROCEDURE `proc_get Student`( IN _student_no BIGINT,IN _roll_no BIGINT)
BEGIN
   IF ( _student_no IS NOT NULL AND _roll_no IS NULL) THEN
       SELECT * FROM Fetch_Marks WHERE Student_No  = _student_no;
   END IF;
END$$

DELIMITER ;

引用自:https://dba.stackexchange.com/questions/273741