我有一个像这样的SP
BEGIN
DECLARE ...
CREATE TEMPORARY TABLE tmptbl_found (...);
PREPARE find FROM
" INSERT INTO tmptbl_found
(SELECT userid FROM
(
SELECT userid FROM Soul
WHERE
.?.?.
ORDER BY
.?.?.
) AS left_tbl
LEFT JOIN
Contact
ON userid = Contact.userid
WHERE Contact.userid IS NULL LIMIT ?)
";
DECLARE iter CURSOR FOR SELECT userid, ... FROM Soul ...;
...
l:LOOP
FETCH iter INTO u_id, ...;
...
EXECUTE find USING ...,. . .,u_id,...;
...
END LOOP;
...
END//
它给出了多重结果。除了不方便之外,如果我得到所有这些多结果(我真的根本不需要),对于 Soul 中数十万条记录中的每条记录大约 5 个(限制的参数),恐怕它会占用所有我的记忆(一切都是徒劳的)。另外,我注意到,如果我确实从一个空字符串进行准备,它仍然有多个结果......至少如何在执行语句中摆脱它们?对于任何可能的语句,我想有一个方法来避免来自 SP 的任何输出(我也有很多“更新......”和“选择......进入”里面,如果他们可以产生多重) . Tnx 寻求帮助...