ホームページ  >  に質問  >  本文

MySQLで2つのプロキュデレを1つに集約するにはどうすればよいですか?

ほぼ同じに見える 2 つのプログラムがあります。 1 人は locationprice を受け取ってアクションを実行し、もう 1 人は experienceprice を受け取ります。 < /p> ###初め:### リーリー ###二番目:### リーリー

ご覧のとおり、

WHERE

句のみが変更されています。 MySQL では、これら 2 つのプロシージャを 1 つに集約することは可能ですか?同じように見えても変更されるだけのプログラムが 5 つほどあるからです。

WHERE

句では、ケースごとに個別の手順を実行するのが煩わしいと感じます。

P粉998920744P粉998920744264日前361

全員に返信(2)返信します

  • P粉315680565

    P粉3156805652024-01-30 00:22:32

    IFNULL を使用できます。 experience または id_location の値を渡し、他の値には NULL を使用します。

    パラメーターが列名と区別されるように、パラメーターの命名スキーム (ここでは in__-prefix) を使用することもお勧めします。

    リーリー

    返事
    0
  • P粉951914381

    P粉9519143812024-01-30 00:22:16

    たとえば、次のように使用できます:

    リーリー

    提供された IN エクスペリエンス INT が値に設定されている場合、その条件が適用されます。このパラメータに NULL を指定すると、IN id_location INT の条件が適用されます。

    注 - SP には 4 つではなく 5 つのパラメータがあります。

    PS. SP には単一の SQL ステートメントが含まれているため、BEGIN-END と DELIMITER は必要ありません。

    PPS。同様のアプローチを使用して、条件の一方または両方を適用する、またはどちらも適用しない SP を作成できます。たとえば、次のようになります:

    リーリー ###購買力平価。 2 つの別個の関数を使用したいが、コードのコピーがある場合 (たとえば、これらの関数名が一連のコードですでに使用されている場合)、次のようにすることができます:

    リーリー

    返事
    0
  • キャンセル返事