这些日子做一个项目,需要群发消息功能,由于群发的用户ID值不能确定而又需要使用存储过程实现,而MYSQL5.0不支持数组,研究了半天终于搞定了
![ContractedBlock.gif](https://img7.php1.cn/3cdc5/cfe7/807/e9534421343b1a8d.gif)
Code
1
-- Procedure "p_Message_MultiInsert" DDL
2![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
3
CREATE PROCEDURE `p_Message_MultiInsert`(param_State smallint,
4![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
5
param_Type smallint,
6![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
7
param_SMS smallint,
8![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
9
param_SenderID int,
10![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
11
param_SendTime datetime,
12![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
13
param_ReceiveTime datetime,
14![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
15
param_ReceiverIDS varchar(1000),
16![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
17
param_Title varchar(60),
18![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
19
param_Content varchar(4000),
20![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
21
param_Count int)
22
begin
23![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
24![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
25![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
26
DECLARE i INT(8) DEFAULT 0;
27![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
28
REPEAT SET i = i + 1;
29![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
30
INSERT t_Message
31![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
32
(
33![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
34
f_State,
35![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
36
f_Type,
37![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
38
f_SMS,
39![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
40
f_SenderID,
41![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
42
f_SendTime,
43![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
44
f_ReceiveTime,
45![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
46
f_ReceiverID,
47![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
48
f_Title,
49![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
50
f_Content
51![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
52
)
53![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
54
VALUES
55![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
56![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
57![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
58
(
59![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
60
param_State,
61![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
62
param_Type,
63![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
64
param_SMS,
65![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
66
param_SenderID,
67![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
68
param_SendTime,
69![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
70
param_ReceiveTime,
71![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
72
SUBSTRING_INDEX(SUBSTRING_INDEX(param_ReceiverIDS, ',', i), ',', -1),
73![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
74
param_Title,
75![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
76
param_Content
77![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
78
);
79![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
80
UNTIL i >= param_Count
81![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
82
END REPEAT;
83![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)
84
end;
85![](https://img7.php1.cn/3cdc5/cfe7/807/60ba09eef57390f6.gif)