delphi adoquery怎么在查询结果中再次查找?

SQL.Text := 'select * from T_BWL where CLASS =' + QuotedStr('BJ');
这样查询了一次结果,就是想把 BJ 里的内容查出来,
然后在 BJ 里面再次查询包含 111 的内容,各位老师是怎么做的,谢谢!

2个回答

为什么不直接在where里加and条件呢....
SQL执行, 如果你没有建立索引 无论如何都会循环全表找出BJ和循环全表找出BJ and 111效率没差别
如果你有建立BJ的索引 那么加了and 111 也是先利用索引取出BJ 然后循环取111
如果有建立BJ和111的联合索引, 那一次性直接命中记录, 比你分2次查找效率高多了

直接再次查询一次就可以了。我明白你的意思,你希望从查找的结果中搜索,似乎可以比从全部数据里面查找快一些。但是实际上这个时间差异不明显的。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
access中查询的结果和通过delphi的adoquery查询的结果不一样
在delphi中有这个样一个查询字符串,SELECT * FROM zl_zlzd where 资料名称 like "*delphi*"rn 将该字符川赋值给一个tadoquery变量的sql属性,打开之后记录数为0rn将这个字符串直接在access中运行记录数为1,真实情况也应该是1。rn我使用的是delphi7 ,access是2000 ,操作系统是windwosxp,rn请高手帮忙怎么解决这个问题,rn
从adoquery的查询结果集中再次查询,100分相送!
我做的这个程序c/s结构的,由于网络很大,对数据的传输有要求,所以我想把需要的一次rn从服务器上取下来,adoquery如:select * from user where address like 'nmg%',得到这个结果集之后,我在从本地对adoquery其进行查询或修改,以减少网络的负担!
怎样在查询结果中再次查询?
不知 怎样做到在查询结果中再次查询?rnrn是用dataset之类的还是用别的,rnrn谢谢
在查询结果中进行再次查询
select top 2* from (select studentID,avg(score) from ScoreInfo where schoolYear='2012-2013' group by studentID) rn我想这样查询 但是一直报错
delphi中用ADOquery查询
我用delphi做了一个查询系统,是用ADOquery访问数据库的,现在数据库的数据量越来越大,查询速度也越来越慢,查询结果是显示在dbgrid中的,一般查询结果不是直接显示在dbgrid中吗,现在查询结果在dbgrid中显示的过程很慢,看到滚动条慢慢下拉最后才显示完,这种情况我要怎么处理能提高这个查询速度啊?
Delphi Adoquery参数查询
Delphi课程上机的一部分
php中 mysql 查询的结果再次查询怎么写
是这样的,数据表diy中有slbm、heck、以及其他字段rn怎么用sql语句循环查询slbm字段中内容重复的次数以及该字段heck=1的次数,然后再换算出百分比rn举个例子:rndiy表中slbm字段出现了4次建议,3次改版,3次吐槽rn(假设heck=1的时候算一次回复)rn其中4次建议中只出现1次heck=1,rn3次改版中出现2个heck=1,rn3次吐槽的数据中有3个heck=1rn建议   4次   回复1次   回复率%rn改版   3次   回复2次   回复率%rn吐槽   3次   回复3次   回复率%rnrn我用这个sql语句,只能查询出slbm字段的重复次数,但是对应内容的heck=1次数就不知道怎么查询了rnselect slbm,count(slbm) as cnt from diy where group by slbm rn还有 这个百分比的换算怎么搞啊
从一个查询结果中再次查询,结果非常的卡
我是个菜鸟,才学数据库,贴出代码,求大神帮助啊!!!rnSELECT count(*) from(rn[color=#FF0000]SELECT EVALUATIONINFO.*,SURVEYEVALUATION.EVALUATIONPERSONID,SURVEYEVALUATION.EVALUATIONIP,rnSURVEYEVALUATION.REQUESTTIME,SURVEYEVALUATION.FINISHTIME,ROWNUM rn rnfrom EVALUATIONINFO join SURVEYEVALUATIONrnon SURVEYEVALUATION.ID=EVALUATIONINFO.SURVEYEVALUATIONIDrnwhere SURVEYEVALUATIONId inrn(rnSELECT ID from SURVEYEVALUATION where QUESTIONNAIREID='20131216130957'rnAND EVALUATIONPERSONID IN(SELECT ID from STU_BASEINFO)) rnand TITLENO='3' and rownum<=10[/color]) rnrn当执行红色的代码的时候速度很快,就0.19S左右,但是如果全部执行的话,需要5分钟左右,求解为什么会这样啊!
adoquery 查询结果修改,,急!!!!
我想修改用adoquery查询出来的结果。。。中的2个字段。。rn该怎么写?rnadoquery1.edit;rnadoquery1['huanshudate']:=DateTimePicker1.Date;rnadoquery1.post;rnadoquery1.Close;rnadoquery1.Open;rn提示;;;缺少有效的定位信息。。。
ADOQuery查询的结果为0
主要代码如下:rnADOQuery1->Close();rnADOQuery1->SQL->Clear();rnADOQuery1->SQL->Add(...);//实际内容rnADOQuery1->Open()或ExecSQL();rn主要是对数据库(sqlserver2000)的过去100天的历史数据进行查询,刚开始的前几天查询结果还对,但后面查询到的结果全为0,不理解,请高手指点迷津!!!
请问怎么在查找结果中继续查找
在根据条件查找出来的显示在grid表格中,再输入条件在已经查出的结果中继续查找。rn最好是只用到select语句的方式。因为我看到原来写的就是全select语句,现在要改成写在配置文件里的,原来的实在太乱没法看。求个思路。rn我的思路是这样的:在第一次查找出来的结果中根据第二次的条件进行查找。rn但是发现一个问题,比如图中:[img=https://img-bbs.csdn.net/upload/201312/09/1386589922_426235.png][/img]rnrn我第一次输入的条件为M有5条结果,第二次输入MI有2条,第三次再输入M还是2条,但第四次输入M结果变成了5条。而其要求为在上一次的结果中继续检索,是不能比上次的结果数目多的。想到在action里判断,如果条件与上一次重复就return,但简单检索还可以,复杂检索有十几个条件,看起来好麻烦。rn求指教思路,最好是纯select语句的rn
delphi adoquery access查询速度慢
各位大虾帮忙看下,用DELPHI+ACCESS做个系统,是用ADOQUERY连接的,代码如下,数据只有两三千条的时候,查询速度还可以,但达到五六千的时候,整个系统都给卡住了,一下代码实现的是从ACCESS提取数据显示到StringGrid中。rnrnprocedure UpdateGrid(ADOQuery1: TADOQuery;ContactGrid:TStringGrid;sqlText:string);rnvarrn index:Integer;rn tmpADO: TADOQuery;rnbeginrn ClearGrid(ContactGrid);rn tmpADO := TADOQuery.Create(nil);rn tmpADO.Connection := ADOQuery1.Connection;rn tmpADO.ConnectionString := ADOQuery1.ConnectionString;rn tmpADO.Close;rn tmpADO.SQL.Clear;rn tmpADO.CursorLocation := clUseServer;rn tmpADO.LockType := ltReadOnly;rn tmpADO.sql.add(sqlText); // sqlText:='select Contact.* from Contact,GroupContact rn tmpADO.Open; //where Contact.ContactId=GroupContact.ContactId and roupContact.GroupId=1';rnrn ContactGrid.RowCount := tmpADO.RecordCount+2;rn ContactGrid.Options:=ContactGrid.Options + [goColSizing];rn tmpADO.First;rn index := 1;rn while not tmpADO.Eof dorn beginrn ContactGrid.Cells[1,index] := 'no';rn ContactGrid.Cells[0,index] := IntToStr(index);rn ContactGrid.Cells[2,index] := tmpADO.FieldByName('ContactName').AsString;rn ContactGrid.Cells[3,index] := tmpADO.FieldByName('CoName').AsString;rn ContactGrid.Cells[4,index] := tmpADO.FieldByName('ContactMobile').AsString;rn ContactGrid.Cells[5,index] := tmpADO.FieldByName('HeadShip').AsString;rn ContactGrid.Cells[6,index] := tmpADO.FieldByName('Sex').AsString;rn ContactGrid.Cells[7,index] := tmpADO.FieldByName('Birthday').AsString;rn ContactGrid.Cells[8,index] := tmpADO.FieldByName('CoFax').AsString;rn ContactGrid.Cells[9,index] := tmpADO.FieldByName('CoAddr').AsString;rn ContactGrid.Cells[10,index] := tmpADO.FieldByName('HomeTel').AsString;rn ContactGrid.Cells[11,index] := tmpADO.FieldByName('HomeAddr').AsString;rn ContactGrid.Cells[12,index] := tmpADO.FieldByName('Email').AsString;rn ContactGrid.Cells[13,index] := tmpADO.FieldByName('CoDept').AsString;rn ContactGrid.Cells[14,index] := tmpADO.FieldByName('CoTel').AsString;rn ContactGrid.Cells[15,index] := tmpADO.FieldByName('Description').AsString;rn ContactGrid.Cells[16,index] := tmpADO.FieldByName('Province').AsString;rn ContactGrid.Cells[17,index] := tmpADO.FieldByName('City').AsString;rn ContactGrid.Cells[18,index] := tmpADO.FieldByName('Trade').AsString;rn ContactGrid.Cells[19,index] := tmpADO.FieldByName('ContactId').AsString;rn tmpADO.next;rn index := index + 1;rn // SDIAppForm.edit1.text:=IntToStr(index);rn end;rn tmpADO.Free;rnend;rnrnrn
怪!delphi的adoquery查询oracle数据库
怪!在用delphi的adoquery查询oracle数据库的某一张表时,出现"未指定的错误"rn查询其他表都是正常的(都是oracle数据库),让人真是不可理解rn代码rn ADOQuery1.Close;rn ADOQuery1.SQL.Clear;rn ADOQuery1.SQL.Text:= 'select * from csh_jbxx';rn ADOQuery1.Active :=true;
delphi adoquery 的lookup查询问题。
目前情况是这样的,qtemp里创建了code1、code2两个fklookup型字段,code1连接q1;code2连接q2;运行后报错。 rn 什么原因,很困惑?
一个用查询结果再次查询的问题!
select distinct idrnfrom table1rnwhere name='ZHANG'rnrn比如会返回rnidrn001rn002rn004rnrn然后我想用查到的id组再查找table2,返回在table2里存在的id组?(最好不用临时表)rn比如rnidrn001rn004rnrn(比如id=002的数据不存在于table2里面)rnrn
SQL之在查询的结果里再次查询
俗称嵌套查询。 看示例: select * from (select * from Table) as A 需要注意的是,在子查询的后面一定要指定子查询的结果,命名为A。否则会报错。
如何对查询结果再次查询啊?
[code=SQL]rnrncreate table tab_arn(rn id int,rn value char(10)rn)rnrncreate table tab_brn(rn id int,rn value char(10)rn)rnrninsert into tab_a (id, value) values (1, 'a');rninsert into tab_a (id, value) values (2, 'b');rninsert into tab_b (id, value) values (2, 'b');rninsert into tab_b (id, value) values (3, 'c');rnrnselect distinct * from rn(rnselect * from tab_arnunion allrnselect * from tab_brn) //mark。这边难道不可以对查询结果再次查询么?那怎么实现呢?rn这边会报错消息 rn102,级别 15,状态 1,第 6 行rn')' 附近有语法错误。rnrn[/code]
怎么拷贝adoquery控件中的结果
想实现这样一个功能:rn窗体上放个adoconnection1 adoquery1rn然后在adoquery1中 select * from t1rn取得结果集rnrn然后我想把adoquery1中的结果集拷贝出来 放在我自己定义的一个数据集中rnvarrn aQry:TADOQuery;rnbegeinrn aQry:=TADOQuery.Create(nil);rn 怎么把adoquery1中的数据集拷贝到aQry中,rn 这样当adoconnection1.close后, 数据集aQry中仍然有数据。rn 如果不把adoquery1中的数据拷贝出来,当adoconnection1.close后,adoquery1中的数据也没有了。
delphi中用adoquery如何将查询结果存入临时表
谁教教我
delphi :要UPDATE 带参数的ADOQUERY查询出来的结果如何写呢?
两个按纽、,一个是查询rnwith adoquery dorn beginrn Close;rn Parameters.ParamByName('Date1').Value:=StrTodate(FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date));rn Parameters.ParamByName('Date2').Value:=StrTodate(FormatDateTime('yyyy-mm-dd',DateTimePicker2.Date));rn Open;rn end;rnrn(select a.ProductCode,a.ProductName,b.SmallStorage,sum(a.SaleAmount) sumAmountrnfrom saleproductmx a,Product brnwhere a.Saledate>=:Date1 and a.Saledate<=:Date2 and a.ProductCode=b.ProductCoderngroup by a.ProductCode,a.ProductName,b.SmallStorage)rnrn另一个是更新查询出来的结果,要更新b.SmallStorage=sum(a.SaleAmount) sumAmountrnCLICK事件如何写呢?rn
DELPHI中ADOQuery 的问题
DELPHI中用ADOQuery.ExecSQL 执行了一个存储过程 rnExecSQL 是一个返回整型函数rn为什么我获取的都是-1,它有哪些值,分别代表什么意思,rn如果存储过程执行出错了,返回值是多少
delphi更改查询结果
rnstr:='select a,b,[color=#FF0000]c[/color]=case when D=1 then ''true'' else ''false'' ';rn……rnadoquery.open;rnrnC列是临时列,在cxgrid显示为checkbox;rn能否实现,checkbox点击后,adoquery的值跟着改变?rn现在提示adoquery不能编辑。但我又不想在数据库里添加多一列。rn
Delphi中的ADOquery 用法
Delphi中的ADOquery 用法Delphi中的ADOquery 用法Delphi中的ADOquery 用法
在查询结果中重查找怎么办?
如同搜狐中搜索,可以在查找到的结果中重搜索,我应怎么办?
如何在查询结果中继续查找
就像google得在结果中查询一样,怎样用jsp实现呢
如何在CDaoRecordset::Requery()查询结果中再次进行查询
请教各位达人,设定m_strFilter后用Requery()查询表得到结果,如何利用查询结果再次进行查询呢?除了建立临时表还有其他方法么?253一个先~
在SQL语句的查询结果中,再次进行查询
在SQL语句的查询结果中,再次进行查询rnrn比如我有这样一个SELECT语句 select* from personsrnrn我要这个查询语句进行再一次查询rn我认为是select xingming from (select* from persons) where 姓名='zhangsan'
delphi中的adoquery怎么创建动态参数?
我想在程序中为adoquery1组件,创建一个动态参数,怎么创建?rn比如我要用到这样一个语句rnadoquery1.sql.add('select * from table1 where name=:myname');rnmyname是动态参数,我是临时要创建这个参数,不想在adoquery1中parameters属性中进行创建,我想在程序中直接用语句添加,怎么创建动态参数myname??????rn
怎样在复杂查询所返回的结果中再次查询?
我在程序中做了一个复杂查询,即可以让用户选择多个条件机进行查询。rn而且我查询返回的结果是分页显示的rnrn我的问题是:怎么才能在查询所返回的结果中进行再次查询?rnrn请大家提供思路或示范代码。rnrn(我用的是SQL SERVER数据库)
查找adoquery中数据的办法、!!!
我的adoquery1是一个临时查找计算的数据集。locktype:=ltBatchOptimisticrn 问:查找临时表adoquery1符合某一条件的数据的办法是什么、、?rn locatern lookuprn这两种办法我的提示总是not in insert or edit mode 我也不知道怎样改过来,帮忙,sos
如何快速地在adoquery中查找?
有两个adoquery控件:adoquer1、adoquery2,它们的字段全部相同只是数据不同而已,且都是通过字段id排序的。rnrn现要从adoquer1结果集中查找adoquery2中没有的数据并进行处理,问:用什么方法最快?rnrn谢谢!
AdoQuery中的记录查找问题
我的一个表中的字段数不多(不妨假设字段为c1,c2,c3),但是记录不少,大于1000000条,我用AdoQuery来查询该表的记录,不知道如何在AdoQuery中查找符合以下条件的记录:rn 查找c1<'abc'并且c2='def'中c1最大的那条记录。locate好像不行,他不支持不等式的条件,用filter也不合适,在上百万条记录中过滤出几条数据,性能太低了。各位高手有何办法?rn 另外,为了性能方面的考虑,AdoQuery.CursorLocation:=clUserServer
adoquery!我用adoquery控件进行查询,查找结果(RecordCount)是等于0还是-1呢?
程序目的是:判断输入的用户名是否存在rnrnrnrn dm.adoq_rygl.close;rn dm.adoq_rygl.SQL.Clear;rn str_sql:='select uses_name from t_rygl where uses_name='''+trim(e_yhm.text)+'''';rn dm.adoq_rygl.SQL.Add(str_sql);rn showmessage(dm.adoq_rygl.SQL.text);rn dm.adoq_rygl.Open ;rn showmessage(inttostr(dm.adoq_rygl.RecordCount));rn if dm.adoq_rygl.RecordCount=-1 thenrn beginrn //在表中加入记录rn dm.adot_rygl.Insert;rn dm.adot_rygl.FieldByName('uses_name').asstring:=trim(e_yhm.text);rn dm.adot_rygl.fieldbyname('password').asstring:=trim(e_mm.text);rn dm.adot_rygl.post;rn dm.adot_rygl.close;rn dm.adot_rygl.open;rn //将用户名加入ListBox_name中rn ListBox_name.Items.Add(e_yhm.text);rn e_yhm.text:='';rn e_mm.text:='';rn e_qrmm.text:='';rn endrn elsern showmessage('用户名已经存在!');rnrnrn当我把条件设为 dm.adoq_rygl.RecordCount=-1 程序可以运行但用户名存在时也可以添加;rn当我把条件设为 dm.adoq_rygl.RecordCount=0 程序就跳过执行else 后的代码rnrnrnrn???????????????rn
如何通过AdoQuery得到SQL查询结果
比方rnif object_id('石家庄')<>0rn print 'exists'rnelsern print 'no exists'rn在SQL查询分析器中会得出rnexists或no exists的结果.rn如何在AdoQuery执行以上查询后得到SQL输出结果?
adoquery查询结果累加问题!简单着!
我用ADOquery 作了一个查询,现在我想正对查询出的众多字段中的money这个字段的值做一个累加,算出总金额,然后输出到汇总表里。现在就是不知道对于adoquery查询出的结果里有什么办法或函数或事件对其money字段的值累加,我查过了sum在adoquery的方法、事件、属性里没有,请高手指点,谢谢了!
如何才能ADOQuery的结果查询存为文本文件
如何才能ADOQuery的结果查询存为文本文件,rn不能Bcp工具,因为是oracle的数据库rnADOQuery中的sql为select 字段1 + 字段2 + 字段3 from 表名rn怎样存为文本文件rn格式:rn字段1+字段2+字段3rn
如何将ADOQuery查询到的结果转换成.dbf文件?
如何将ADOQuery查询到的结果转换成.dbf文件?
adoquery查询结果为0时出错???
用adoquery查询,结果为0时,即找不到记录时,会出错,是怎么回事,会找到记录时不会错,程序如下:rnwin2000,delphi5,mssql 2000数据库,rnrn Querystr:='select * from sjdn where 司机姓名='''+'小吴'+'''';rn ADOQuery1.close;rn ADOQuery1.SQL.Clear ;rn ADOQuery1.SQL.Add(Querystr);rn ADOQuery1.open;rn找不到记录第一次运行不会错,再运行一次,就报错,"eof or bof..."rn是什么原因,程序要怎么写代码??解决马上给分.rn
请教:AdoQuery的查询结果怎样清除?
我用一个AdoQuery动态的查询不同部门的产品,第一次结果正确!再次执行时,老是第一次的结果。我尝试用AdoQuery->RecoreSet->clear(),可是运行出错!请问该怎样删除上次的查询结果!万分感谢!
怎么能得到adoquery的查询结果呀?谢谢
sql文:select name from table1 where code = 'A'rnrn我想在程序中使用select的结果rn怎么得到 啊rnrn一定要用datasource , dbgrid 嘛?rnrn谢谢
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池