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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 传入的学历)--没填写学历是则该条件不生效

参考技术A 不太明白,按照您的思路,使用子查询就可以了。但是直接用and把查询条件联起来和使用子查询不是一样吗?如果是想把查询结果保存起来,下次查询的时候用,就建一个临时表。 参考技术B 有方法,但是查询起来很慢很慢,我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中查找。这样减少数据库连接了。本回答被提问者采纳
参考技术C 老大 你是开发小程序吧,
弄个数组 全取出 不就完了
参考技术D 可以直接用多条件查询:
select * from 表 where 姓名 like '王%' and 地址='A小区' and 学历='本科'

以上是关于mysql中如何在上一次的查询结果中再次查询的主要内容,如果未能解决你的问题,请参考以下文章

如何在MySQL中查询当前数据上一条和下一条的记录

如何在mysql 的查询结果中增加一个字段进去

如何在mysql查询中获得排序结果?

如何在mysql 的查询结果中增加一个字段进去

进行查询,得到结果 再次查询

php mysql替代在循环中再次使用相同的查询[重复]