将数组传递给MySQL存储例程?

我们需要创建一个存储过程来显示如何将数组传递给MySQL存储例程。让我们首先为我们的示例创建一个表。

建立表格

mysql> create table FindDemo
   -> (
   -> name varchar(100)
   -> );

在表中插入一些记录。

mysql> insert into FindDemo values('John'),('Smith');
Records: 2  Duplicates: 0  Warnings: 0

显示所有记录。

mysql> select *from FindDemo;

以下是输出。

+-------+
| name  |
+-------+
| John  |
| Smith |
+-------+
2 rows in set (0.00 sec)

创建一个接受例程作为数组的存储例程。

mysql> delimiter //
mysql>CREATE  PROCEDURE SearchingStoredProcedure(IN ArrayDemo VARCHAR(100))
   -> BEGIN
   ->     SELECT * FROM FindDemo
   ->     WHERE FIND_IN_SET(name, ArrayDemo);
   ->
   -> END//

将数组作为参数传递。

mysql> delimiter ;
mysql> call SearchingStoredProcedure('David,Bob,John');

这是输出。

+------+
| name |
+------+
| John |
+------+
1 row in set (0.00 sec)