プロシージャを作成しています... この手順では4つのパラメータがあります。 この4つのパラメータを使用して、同じリストIDをテーブルから探したいとします。他の言葉でストアドプロシージャ内の4つのタプルの同じリストIDを探します
、すべてのIDが同じLIST_IDを持っているならば、 NULLを返さない場合は、LIST_IDを返し、いくつかのIDがNULLであるかもしれない、それがあれば失敗しない必要がありますので、いくつかの IDは、そのテーブルに繰り返されることを認めますIDがnullであるか、 繰り返し
難しい部分はありません、すべての時間が私は4つのIDが設定されていることを持っているということである、と私はNULLとして設定のみ2つのIDと他の二つのセットを持っているかもしれません。例えば
:
Table A
------------------------
ID List_ID
------------------------
1 10
2 10
3 10
4 10
私が見る唯一の解決策は、このようなものです:
SET id1 = (Select List_ID From Table_A Where ID = _ID_Param1);
SET id2 = (Select List_ID From Table_A Where ID = _ID_Param2);
SET id3 = (Select List_ID From Table_A Where ID = _ID_Param3);
SET id4 = (Select List_ID From Table_A Where ID = _ID_Param4);
#Then I have to check if all ids are same
IF id1 = id2 = id3 = id4 THEN I found the same List_ID
そしていつか_ID_ParamがNULLに設定されているので、私は唯一の1または2または4つすべてを持っているかもしれません
申し訳ありませんが私はこれを非常によく説明していない場合...しかし、この状況を伝える方法がわからない、私の知識は限られています、私はいくつかの助けが必要です
UPDATE
これは私が必要なものに近いです:
SELECT
IF((
MIN(List_ID) = MAX(List_ID)
AND COUNT(*) = (Select Count(*) From (SELECT _ID_Param1 AS val
UNION ALL
SELECT _ID_Param2
UNION ALL
SELECT _ID_Param3
UNION ALL
SELECT _ID_Param4) Temp Where Temp.val is not null
) ) , List_ID, NULL
) AS LID
FROM table_a
WHERE ID IN (_ID_Param1, _ID_Param2, _ID_Param3, _ID_Param4)
だけ間違ったことは、それはパラメータがテーブルに存在しないとの重複があってもLIST_IDを返すということです他のパラメータとそれを2回カウントします。どのようにすべてがparamsはかどうかを確認するために、そのような場合を除外するようにして存在する
https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple- sql-query – Strawberry