0
WHEREステートメントに変数を挿入するクエリがあります。クエリのWHEREステートメントを@variableとして
WHERE @Variable
私は(簡体字)、以下を試してみたが、動作するようには思えません。
注:ここでは、質問をする前に自分自身を理解するために連結要素を含めていません。
SET @id := x;
SET @n := (SELECT COUNT(*) FROM Table2 WHERE [email protected]);
SET @Variable := (
(
Table1.Column1=(SELECT Column1 FROM Table2 WHERE [email protected] LIMIT 1 OFFSET 0)
AND Table1.Column2=(SELECT Column2 FROM Table2 WHERE [email protected] LIMIT 1 OFFSET 0)
AND Table1.Column3=(SELECT Column3 FROM Table2 WHERE [email protected] LIMIT 1 OFFSET 0)
)
.........
OR
(
Table1.Column1=(SELECT Column1 FROM Table 2 WHERE [email protected] LIMIT 1 OFFSET @n)
AND Table1.Column2=(SELECT Column2 FROM Table2 WHERE [email protected] LIMIT 1 OFFSET @n)
AND Table1.Column3=(SELECT Column3 FROM Table2 WHERE [email protected] LIMIT 1 OFFSET @n)
)
)
;
SELECT Table1.Column1, Table1.Column2, Table1.Column3, Table2.Column1, Table2.Column2, Table2.Column3
FROM Table1, Table2
WHERE
@Variable
;
動的クエリを作成して実行するには、http://stackoverflow.com/questions/23178816/mysql-dynamic-query-in-stored-procedureやhttp://stackoverflow.com/questions/8549619のようなものを使用します。/mysql-dynamically-build-query-string-in-a-stored-procedure-on-logicを使用します。 '@ var'は動作しません。 'where field = @ var'はあなたのクエリを書いているように動作します。 – zedfoxus
ありがとうzedfoxus、本当に私の質問に答える、それは私がそれをしたい方法で行うことはできませんので、私は私の質問を考え直す必要がありますどのようにループNブロックにすることができます作成ステートメントに回すことができます。 TY – denski
私はそれが欲しいと思う 'ANY'を見つけました - サブクエリーの各行を比較してください。私はとにかく答えをここに掲示します。 – denski