a是表索引,b是普通列。
select a,b from ( select a,b from table where a in (*listA*) ) where b in (*listB*)
或
select a,b from table where (a=listA[0] and b=listB[0]) or (a=listA[1] and b=listB[1])...
我使用伪代码表示列表声明。
答案 0 :(得分:0)
第一个查询错误,因为它从不查看a
和b
的组合。
要使用临时表,您必须加入它:
SELECT a, b
FROM MyTable
JOIN (SELECT 1 AS a, 2 AS b UNION ALL
SELECT 3, 4 UNION ALL
SELECT 5, 6 ...)
USING (a, b)
哪个版本更优化取决于太多因素;找出的唯一方法是用代表性数据进行衡量。