在数据库中,我有5列以及ID:
id, m1, m2, m3, m4, m5
我正在根据ID从一个可能有1到5行的表中进行选择:
row,id,value
1, 1, 'A'
2, 1, 'B'
3, 1, 'C'
等 我需要做的是用值A,B和C更新用户ID 1的用户表中的m1,m2和m3列。我已经开始了类似的工作,但在周二碰到了严重的星期一脑。
i=1;
cfloop (query=q) {
field = 'm' & i;
temp = invoke(myCFC,"updateUser",{ userid=q.id, field = q.value });
i++;
};
其中“字段”为m1,m2,m3。一种方法是在recordcount上使用一个switch / case并有5个不同的调用,但是不确定是否有一种更好的编程方式?
[edit]这有效,但可能不是最好的方法-我有1-5的情况:
switch(qryM.recordCount) {
case "1":
temp = invoke(userCFC,"updateUser", {
id = qryM.rsm_userid,
m1_c = qryM["rsm_c"][1],
m1_m = qryM["rsm_m"][1]
});
break;
case "2":
temp = invoke(userCFC,"updateUser", {
id = qryM.rsm_userid,
m1_c = qryM["rsm_c"][1],
m1_m = qryM["rsm_m"][1],
m2_c = qryM["rsm_c"][2],
m2_m = qryM["rsm_m"][2]
});
break;
答案 0 :(得分:0)
如果实际上最多只能有五行,并且目标列始终是“ m” +当前行号,则可以这样做:
for (row in q) {
myCFC.updateUser(userid:row.id, field:'m#q.CurrentRow#');
}