在工作中难免会遇到需要使用一个数组的时候,但是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来分解字符串为数字。
近期评论