ここで解決策を試しましたが、うまくいきません。
私のテーブルは次のようなものです:
`Index` uid dept
...........................
1 001 dept1
2 001 dept2
3 001 dept3
4 002 dept2
5 002 dept3
6 002 dept4
7 003 dept1
8 003 dept5
9 004 dept1
10 004 dept6
特定のdept
. つまり、取得したい場合は、dept1
uid=002 がないdept1
ため、uid=002 を除くすべての行を取得したいと考えています。
インデックスを使用してもクエリ文字列が遅い:
SELECT id FROM table WHERE uid IN
(SELECT uid WHERE dept='dept1')
WHERE IN を使用しない以前のバージョンは次のとおりです。
最初に dept=dept1 のすべての uid を取得します。
次に、最初のクエリで取得されたすべての uid に対して for ループを使用します。
この方法は、最初のクエリで取得される行が少量 (100) の場合、非常に高速です。ただし、多くのクエリを作成するため、良い解決策ではないようです(それぞれが非常に高速です)。