MySQLで1つのSELECTクエリで複数の変数を設定する方法はありますか?
こんにちは、みなさん。
私のSPには、このようなSELECTクエリがあります。
SELECT val_01, val_02 INTO var_01, var_02 FROM table_name WHERE col_name = condition_01;
このクエリは正しく動作します。
しかし、SQLWARNINGの終了ハンドラをに追加しました。上記のSELECTクエリで結果が得られない場合、SQL警告がこのようになり、停止しました。
データなし - ゼロ行が選択され、取り出された、または私はGoogleで検索して、この問題を解決する方法を見つけた
を処理しました。このようなクエリを変更しています...
SELECT var_01 = val_01, var_02 = val_02 FROM table_name WHERE col_name = condition_01;
このクエリが機能します。しかし、元のクエリと変更されたクエリには違いがあります。
SPでは、元のクエリの結果は表示されません。 SELECTクエリの値を変数に代入するだけです。
しかし、後者は変数の値でSELECT結果をスローします。
SPを呼び出す私のcppコードが間違った値を取得します。
私は
SET var_01 = SELECT val_01 FROM table_name WHERE col_name = condition_01;
SET var_02 = SELECT val_02 FROM table_name WHERE col_name = condition_01;
...にクエリを変更することができますしかし、あなたが知っているように、これは非常に非効率的であり、クエリの下に動作しません。
SET var_01, var_02 = (SELECT val_01, val_02 FROM table_name WHERE col_name = condition_01);
元のクエリと同じ結果を得る効率的な方法はありますか?
私を助けてください。ありがとうございました。
この特定のシナリオは、出口ハンドラで処理します(たとえば、最初のクエリでレコードが返されない場合は終了しないでください)。 – Shadow