mysql中如何在上一次的查询结果中再次查询

假设一个表中有姓名,地址,公司,学历等字段,第一次搜索姓王的,第二次在第一次的结果中查询住在A小区的,第三次在第二次的基础上查询本科的
用AND我知道,就假设有一个查询页面,上面有姓名,地址,公司,学历等这样的输入框,根据填写的内容查询,并不是每次所有的框的都填写了,用AND的话就要写很多SQL语句了,字段少还好,多了的话光写IF就够头疼的了,如果能在上一次的结果中再次查询可以省掉好多语句,修改维护起来也方便。
临时表我也想过,就是不知道查询速度如何

你可以才用and和or 两个组合起来使用,例如:

--只是大概的结构 like 语句自己拼接
select *
from 表名
where (传入的姓名 is null or 姓名 like 传入的姓名)--没填写姓名是则该条件不生效
and (传入的地址 is null or 地址 like 传入的地址)--没填写地址是则该条件不生效
and (传入的公司 is null or 公司 like 传入的公司)--没填写公司是则该条件不生效
and (传入的学历 is null or 姓名 like 传入的学历)--没填写学历是则该条件不生效

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-13
不太明白,按照您的思路,使用子查询就可以了。但是直接用and把查询条件联起来和使用子查询不是一样吗?如果是想把查询结果保存起来,下次查询的时候用,就建一个临时表。
第2个回答  2011-03-15
有方法,但是查询起来很慢很慢,我6万条数据两级查询就执行了19秒,用and连接1秒都不到,
给你个提示SELECT * FROM (SELECT * FROM business WHERE business_name LIKE '%沈阳%') AS a WHERE address LIKE '%沈阳%'

你利用StringBuffer,查A小区的sql语句加上 and area='A小区' 不选则继续,这样不麻烦。

还有一种方法,你把第一次查的结果放在list中,在list中查找。这样减少数据库连接了。本回答被提问者采纳
第3个回答  2011-03-15
老大 你是开发小程序吧,
弄个数组 全取出 不就完了
第4个回答  2011-03-14
可以直接用多条件查询:
select * from 表 where 姓名 like '王%' and 地址='A小区' and 学历='本科'

mysql 查询关系表,根据从一个表的查询结果再去另一个表查询
SELECT class FROM B WHERE name = (select name from A where id = xxxx)即可 如果一个id对应多个name SELECT class FROM B WHERE name IN (select name from A where id = xxxx)

Mysql 中如何按时间段查询数据后,再查询这个时间段内重复的数据条数...
Select * From mytable Where DATE_FORMAT(`录入时间`,'%Y-%c-%e') >= '2013-5-5' and DATE_FORMAT(`录入时间`,'%Y-%c-%e') <= '2013-5-6' and 问题类别 like '惠农政策咨询';

在mysql中把查询出来的结果在进行查询,用sql怎么写。
是吧一表表查询结果在进行 筛选吗。 用 条件就可以了啊。SELECT 列名称 FROM 表名称 WHERE 列='值' AND 列='值' <= 和 SELECT 列名称 FROM 表名称 WHERE 列='值' OR 列='值' <=或 或者 放一起 都可以。SELECT * FROM Persons WHERE ( 列='值' OR 列='值')AND 列='值'...

解读MySQL多重查询的执行方法与技巧mysql一执行多条查询
所谓多重查询,是指在一次查询操作中,同时查询多个表格的数据信息。多重查询可以实现多个表格的关联操作,通过某个公共字段将这些表格关联起来,并且可以进行联合查询、交集查询、并集查询等操作。2. 多重查询的执行过程 在MySQL中,多重查询的执行过程涉及到多个步骤,包括数据连接、查询优化、执行计划等等。

mysql怎么将两个表查询出来的结果再去关联下一张表?
可以用两表的查询结果集做为一个虚拟表(为其取一个表别名),然后再用该虚拟表与另一张表实施连接查询即可。请参考以下例子:假设有三张表 1)商品表(商品ID,商品名称)2)入库表(商品ID,入库数量,入库时间)3)出库表(商品ID,出库数量,出库时间)要求列出所有商品名称、商品ID及其当前库存...

mysql 我如何查询一批数据后,并更新这批数据
查看 row_examined,发现其刚好是表大小:那我们怎么准确的这个倍数呢?一种方法是靠经验:update 语句的 where 中会扫描多少行,是否修改主键,是否修改唯一键,以这些条件来估算系数。另一种方法就是在同样结构的较小的表上试验一下,获取倍数。这样,我们就能准确估算一个大型 update 的进度了。

如何在MySQL中查询当前数据上一条和下一条的记录
方法一:查询上一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误):select * from table_a where id = (select id from table_a where id < {$id} [and other_conditions] order by id desc limit 1) [and other_conditions];查询下一条记录的SQL语句(...

MYSQL用查询结果来更新另一张表
通过MySQL查询结果更新另一张表的过程可以分为几个步骤。首先,确保两表有相同的列名和匹配条件,这有助于准确地找到需要更新的行。接着,使用查询语句从table1中获取特定行数据。例如,查询row1、row2值。具体SQL语句可能如下:`SELECT row1, row2 FROM table1 WHERE condition;` 其中condition根据实际...

mysql 怎么把查询结果作为表名继续查询
mysql中把一个查询结果当作另一个表来查询可用as关键字先将查询结果作为一个临时表,然后使用select语句查询结果集即可。例如:SELECT UserId FROM (SELECT UserId FROM OrderInfo GROUP BY UserId HAVING SUM(Amount)>30)AS table1 以上sql语句实现查询订单表中购买数量超过30的用户编号UserId,OrderInfo...

mysql 查询结果,先查含有某字段的数据,再查其他字段的数据
你是说类似搜索关键字相关度排序的问题吧,我的想法是做分词表,按相关度分配权重,然后按权重通过多条查询关键字条件拼出结果来显示。比如你举的例子,我先查询包含3的数据,再查询不包含3的数据按升序排列,一起存到临时表,再对这个临时表进行输出。

相似回答