Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

배열을 MySQL 저장 루틴에 전달하시겠습니까?

<시간/>

배열을 MySQL 저장 루틴에 전달하는 방법을 표시하기 위해 저장 프로시저를 생성해야 합니다. 먼저 예제를 위한 테이블을 생성하겠습니다.

테이블 생성

mysql> create table FindDemo
   -> (
   -> name varchar(100)
   -> );
Query OK, 0 rows affected (0.46 sec)

일부 레코드를 테이블에 삽입합니다.

mysql> insert into FindDemo values('John'),('Smith');
Query OK, 2 rows affected (0.13 sec)
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//
Query OK, 0 rows affected (0.14 sec)

배열을 매개변수로 전달합니다.

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

다음은 출력입니다.

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

Query OK, 0 rows affected (0.01 sec)