在 MySQL 儲存過程中使用 IN() 來獲取特定記錄?
我們先建立一個表格 -
mysql> create table DemoTable2004 ( UserId varchar(20), UserName varchar(20) ); Query OK, 0 rows affected (0.57 sec)
使用 insert 命令在表格中插入一些記錄 -
mysql> insert into DemoTable2004 values('John_123','John'); Query OK, 1 row affected (0.93 sec) mysql> insert into DemoTable2004 values('23456_Carol','Carol'); Query OK, 1 row affected (0.25 sec) mysql> insert into DemoTable2004 values('111_Bob','Bob'); Query OK, 1 row affected (0.14 sec)
使用 select 語句顯示錶格中的所有記錄 -
mysql> select * from DemoTable2004;
這將產生以下輸出 -
+-------------+----------+ | UserId | UserName | +-------------+----------+ | John_123 | John | | 23456_Carol | Carol | | 111_Bob | Bob | +-------------+----------+ 3 rows in set (0.00 sec)
以下是建立儲存過程並使用 IN() 選擇特定記錄的查詢 -
mysql> delimiter // mysql> create procedure test_of_in(IN uId varchar(20)) BEGIN select * from DemoTable2004 where UserId IN(uId); END // Query OK, 0 rows affected (0.15 sec) mysql> delimiter ; Call the stored procedure: mysql> call test_of_in('23456_Carol');
這將產生以下輸出 -
+-------------+----------+ | UserId | UserName | +-------------+----------+ | 23456_Carol | Carol | +-------------+----------+ 1 row in set (0.00 sec) Query OK, 0 rows affected, 1 warning (0.02 sec)
廣告