假如一张表有字段A和字段B,我需要在表中查找满足(A=x1,B=y1),(A=x2,B=y2)……这样的数据。
如何去写SQL语句,因为数据量比较大(几十万条记录),用怎样的语句执行效率会高一点?烦请高手指点。
不是的,你这个查询的话,查出来的是(x1,y1)(x1,y2)(x2,y1)(x2,y2)四种可能。
但是我想要的只有(x1,y1)和)(x2,y2)。
SQL SERVER里面是不是除了select * from table where (A = x1 AND B = y1) OR (A = x2 AND B = y2)这种方式之外就没有别的方式了?
如果存在索引的情况下,你可以把你的and条件换成union all,可能会快点,其他也就没什么了
追问AND换成union all?能写个例子么?
追答select * from table a=x1
union all
select * from table b=y1
假如有4个数据(x1,y1)(x1,y2)(x2,y1)(x2,y2)
select * from table where a=x1
取到(x1,y1)(x1,y2)
select * from table where b=y1
取到(x1,y1)(x2,y1)
确定是用Union All而不是Intersect?
你是oracle数据库?