在工作中难免会遇到需要使用一个数组的时候,但是mysql却没有数组这种类型,所以我们需要想个办法来处理它。下面是一个简单的演示:
CREATE procedure proc_update_use_arr(myID BIGINT(10))
BEGIN
DECLARE arr VARCHAR(100);
DECLARE arr_flag INT;
DECLARE index_a INT;
DECLARE num INT;
SET arr = '1,2,3,4,5';
SET arr_flag = 1;
SET index_a = 1 ;
WHILE arr_flag <= 5 DO
SET num = substring_index(substring_index(arr,',',index_a),',',-1);
SET index_a = index_a + 1 ;
SET arr_flag = arr_flag + 1;
INSERT INTO b(id,num) VALUES(arr_flag,num);
END WHILE;
COMMIT;
END$$
上面的功能就是把一个数组arr中的五个数字分五条记录插入,其中我们使用一个长varchar类型 arr来保存数组,再使用分隔字符串的方法substring_index来分解字符串为数字。
近期评论