条件の数が非常に多い場合に、SQL ステートメントの where...in 条件句を置き換えるより良い方法は何ですか? SQL ステートメントの where 条件が where id in (1,2,3,4,8,11,23,56,89,110,...) の場合、つまり in の数が非常に大きい場合、この種の SQL ステートメントは非常に劣っているので、この問題を解決するには他にどのようなより良い方法が使用されますか?
-----解決策--------- クエリ内で ID を分割し、最後にそれらをマージします。
------解決策---------------------- select * from x where id=1 Union all select * from x where id=2 Union all ...
-----解決策--------- これは良いです。
------解決策--------- リストにある ID を教えていただけますか? あなたはここにいますか?
------解決策--------- それなら、劣った SQL ステートメントの問題ではありません、10,000 個の id 値を渡すことが許可されているのに、なぜこれらの 10,000 個の id 値を含む in 句が劣っていると言えるのでしょうか?
------解決策---------------------- それで、受信したIDグループを入れるべきだと思いますか?まずそれをテーブルに保存してから、関連するクエリを実行する方が賢明ではないでしょうか?
------解決策--------- または、受信 ID グループを走査します。ループ内で 1 つずつクエリを実行する方が賢明でしょうか?
------解決策---------