我已经尝试过这里的解决方案,但它不起作用。
我的桌子是这样的:
`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) 行,此方法非常快。但是,这似乎不是一个好的解决方案,因为它会创建很多查询(每个查询都非常快)。