如何在儲存過程中實現條件 MySQL 查詢?
對於條件 MySQL 查詢,你可以在儲存過程中使用 IF ELSE 概念。讓我們先建立一個表 −
mysql> create table DemoTable1 ( Id int ); Query OK, 0 rows affected (0.62 sec)
使用 insert 命令在表中插入一些記錄 −
mysql> insert into DemoTable1 values(10); Query OK, 1 row affected (0.19 sec) mysql> insert into DemoTable1 values(20); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable1 values(30); Query OK, 1 row affected (0.12 sec)
使用 select 語句顯示錶中的所有記錄 −
mysql> select *from DemoTable1;
這將產生以下輸出 −
+------+ | Id | +------+ | 10 | | 20 | | 30 | +------+ 3 rows in set (0.00 sec)
以下是建立第二個表的查詢。
mysql> create table DemoTable2 ( Id int ); Query OK, 0 rows affected (1.07 sec)
使用 insert 命令在表中插入一些記錄 −
mysql> insert into DemoTable2 values(40); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable2 values(50); Query OK, 1 row affected (0.17 sec) mysql> insert into DemoTable2 values(60); Query OK, 1 row affected (0.11 sec)
使用 select 語句顯示錶中的所有記錄 −
mysql> select *from DemoTable2;
這將產生以下輸出 −
+------+ | Id | +------+ | 40 | | 50 | | 60 | +------+ 3 rows in set (0.00 sec)
以下是建立用於條件 MySQL 查詢的儲存過程的查詢。
mysql> DELIMITER //
mysql> CREATE PROCEDURE Conditional_Query(id int)
BEGIN
IF id >=40 THEN
Select * from DemoTable2;
ELSE
Select * from DemoTable1;
END IF;
END
//
Query OK, 0 rows affected (0.21 sec)
mysql> DELIMITER ;現在,你可以藉助 CALL 命令來呼叫儲存過程 −
mysql> call Conditional_Query(100);
這將產生以下輸出 −
+------+ | Id | +------+ | 40 | | 50 | | 60 | +------+ 3 rows in set (0.00 sec) Query OK, 0 rows affected (0.03 sec)
再次呼叫並傳入不同的值 −
mysql> call Conditional_Query(13);
這將產生以下輸出 −
+------+ | Id | +------+ | 10 | | 20 | | 30 | +------+ 3 rows in set (0.00 sec) Query OK, 0 rows affected (0.02 sec)
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP