mysql 存儲過程:提供查詢語句並返回查詢執行影響的行數
DELIMITER $$ DROP PROCEDURE IF EXISTS `p_get_select_row_number`$$ CREATE PROCEDURE `test_cases`.`p_get_select_row_number`(IN p_select_sql VARCHAR(500), OUT p_count INT(8) ) BEGIN -- 聲明 DECLARE cnt INT DEFAULT 0; DECLARE stmt VARCHAR(200); -- 賦值 SET @stmt = CONCAT(p_select_sql); -- prepare PREPARE s1 FROM @stmt; -- 執行 EXECUTE s1; -- 獲取查詢影響的行數 SET @cnt = FOUND_ROWS(); -- 輸出影響函數 SELECT @cnt INTO p_count ; END$$ DELIMITER ; CALL p_get_select_row_number('select * from report', @qqq); SELECT @qqq;
執行結果
8 rows in set (0.00 sec)
Query OK, 1 row affected (0.05 sec)
mysql> SELECT @qqq;
+------+
| @qqq |
+------+
| 8 |
+------+
1 row in set (0.00 sec)
