MySQL không có kiểu mảng gốc. Dùng chuỗi phân cách bằng dấu phẩy + hàm FIND_IN_SET() trong stored procedure.
Tạo bảng
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)
mysql> SELECT * FROM FindDemo;
+-------+ | Name | +-------+ | John | | Smith | +-------+ 2 rows in set (0.00 sec)
Tạo stored procedure nhận chuỗi CSV
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)
Gọi procedure với 'mảng'
mysql> DELIMITER ;
mysql> CALL SearchingStoredProcedure('David,Bob,John');
+------+ | Name | +------+ | John | +------+ 1 row in set (0.00 sec)
Chỉ trả về 'John' vì có trong cả bảng và chuỗi tham số.