私は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 ヘルプ...