SQL语句 如何查找一张表里两个字段符合条件的内容

假如一张表有字段A和字段B,我需要在表中查找满足(A=x1,B=y1),(A=x2,B=y2)……这样的数据。
如何去写SQL语句,因为数据量比较大(几十万条记录),用怎样的语句执行效率会高一点?烦请高手指点。

大数据查询跟字段是否有索引也有关系的
1、select *
from test
where a in ('x1','x2') and b in ('y1','y2')

不知道是不是要这样的追问

不是的,你这个查询的话,查出来的是(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数据库?

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-03-05
首先不能确定要查询多少次,所以只能用循环查询
从效率方面考虑,应该用存储过程,参数传2个数组,返回一个结果集
另外对于这两列数据也要创建索引
第2个回答  2015-03-05
问题比较模糊!\r\n请举例说明要解决的问题: 把两个表结构列出来, 再列出查询需求

SQL语句 如何查找一张表里多个字段符合条件的内容
两个方法。这是按照你的题意是这么的,但是应该死查不出来东西的,因为A=a1 和A=a2怎么会同时满足,除非a1=a2,我觉得可能你题目看错了,不是同时满足,而是满足条件1或条件2,这样才会有记录被查出来 1. select * from tab where ((A=a1 and B=b1)and(A=a2 and C=c1));2.select * fr...

SQL语句中怎样同时查询一个表中的两个字段
SQL语句中同时查询一个表中的两个字段可以参考下面的代码:select 字段1,字段2,...字段n from 表名(如果有条件的话)where age=12 and name=“小名”(如果想排序的话) order by desc(asc)(如果想限制查询条数的话)limit=10

SQL语句 如何查找一张表里两个字段符合条件的内容
1、select from test where a in ('x1','x2') and b in ('y1','y2')不知道是不是要这样的

怎样用Sql语句判断一张表中的两条数据相同
您好:通常来说从第一条数据上提取条件,来检索第二条数据。参考语句如下。DECLARE @条件1NVARCHAR(50)DECLARE @条件2NVARCHAR(50)DECLARE @条件3NVARCHAR(50)SELECT @条件1=字段1 ,@条件2=字段2 ,@条件3=字段3 FROM 第一条数据所在表 WHERE 第一条数据主键 DECLARE @ExistINTSELECT @Exist=...

sql语句如何查询一个表中某两个字段的相同数据?
查询一个表中某两个字段的相同数据代码是:Select Name,ID From A group by Name,ID having count (*)>1。结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;sql 语句就是对数据库进行操作的一种语言...

SQL查询语句如果将一个表中的两个字段分别相同的记录查询出来?
select * from A X where (select count(1) from A Y where X.字段B=Y.字段B and X.字段C=Y.字段C)>1

SQL语句 一个字段查询两个条件
select * from [表名] where [字段名] in ('裤子','鞋')就是这个 代表查询所有的内容,如果你只要查询产品型号的话就把*改成字段名产品弄号。

sql 同一个表 不同字段按不同条件查找
方法一:select * from zy_zyxmxx where 代码 = 01 or 摘要 = '帐号'or 拼音码 = 'MM';方法二:select * from zy_zyxmxx where 代码 = 01 union select * from zy_zyxmxx where 摘要 = '帐号'union select * from zy_zyxmxx where 拼音码 = 'MM';...

sql查询两个字段相同的记录
两种方法,一种是查询重复的数据,只查询重复记录,不管其余信息,如ID什么的:select uid, time from ztest GROUP BY uid, time having count(*)>1;查出结果是 uid time 1 1 还有一种是查询你指定信息,可以查询出ID信息:select distinct a.id, a.uid, a.time from ztest a join zt...

SQL语句如何使用一个表的某个字段的条件查询另外一个表符合这个条件的记...
1、用IN select * from b where id in (select id from a where 条件)2、用JOIN select b.* from b inner join a on b.ID=a.ID where 条件 (如:where a.字段1=1)

相似回答