社区
Delphi
帖子详情
******select返回的结果问题***********
立志做一个佳娃~
2002-06-05 04:20:54
请问各位高手,我想用select来进行查询,但我想在查询后让select给我一个有没有合乎条件的结果,怎么写??
...全文
48
8
打赏
收藏
******select返回的结果问题***********
请问各位高手,我想用select来进行查询,但我想在查询后让select给我一个有没有合乎条件的结果,怎么写??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yk1028
2002-06-05
打赏
举报
回复
with adoquery1 do
begin
close;
sql.clear;
sql.add('select * from table1');
open;
if isempty then
showmessage('no record')
else
begin
xxxx;
end;
end;
windindance
2002-06-05
打赏
举报
回复
select (case count(*) when 0 then 'has not result' else 'has result' end)
from table
短歌如风
2002-06-05
打赏
举报
回复
如果只想知道是否有符合条件的记录,应该这样写:
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select Count(*) From...
Query1.Open;
if Query1.Fields[0].AsInteger = 0 then
//无符合条件的记录
else
//有符合条件的记录
这样可以避免从数据服务器传递大量不需要的数据.
轻风又伤心了:2002-06-04
____ ____
\ p \ / g /
\ l \_/ n /
\ a o /
\ i s /
\ n /
\_/
短歌如风
2002-06-05
打赏
举报
回复
如果你只是要知道有没有合乎条件的结果,而不需要取得数据的话,sql应该这样写:
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT COUNT(*) FROM ...');
Query1.Open;
if Query1.Fields[0].AsInteger = 0 then
//无符合条件的记录
else
//有符合条件的记录
以免从数据服务器传递大量不需要的数据.
轻风又伤心了:2002-06-04
____ ____
\ p \ / g /
\ l \_/ n /
\ a o /
\ i s /
\ n /
\_/
zjj_horse
2002-06-05
打赏
举报
回复
if query.eof then
ly_88
2002-06-05
打赏
举报
回复
query.SQL.clear;
query.SQL.add('select * from table where ...');
query.open;
if query.isEmpty then begin
//没有合乎条件的记录
end
else begin
//有合乎条件的记录
end;
lanbada
2002-06-05
打赏
举报
回复
where 1=2
dreamfan
2002-06-05
打赏
举报
回复
判断是否为空,用
adoquery.isempty
select
*和
select
字段名
建议使用
select
字段名 而少用
select
*。原因如下 1、
SELECT
*语句取出表中的所有字段,不论该字段的数据对调用的应用程序是否有用,这会对服务器资源造成浪费,甚至会对服务器的性能产生一定的影响。 2、如果表的结构在以后发生了改变,那么
SELECT
*语句可能会取到不正确的数据甚至是出错。 3、执行
SELECT
*语句时,SQLServer首先要查找出表中有哪些列,然后才能开始执行
SELECT
*语句,这在某些情况会产生性能
问题
。 4、使用
SELECT
*语句将不会使用到...
select
* 和
select
1,
select
count(*)和
select
count(1)
1、
select
* 和
select
1的区别 如果要
返回
数据,使用
select
* ,如果要判断有没有结果使用
select
1; 2、
select
count(*)和
select
count(1)的区别 一般情况下,
select
count(*)和
select
count(1)两个
返回
的结果是一样的。
select
* from a,b 记录
仅作为记录用来翻阅提醒,因为老忘: 1、
select
* from a,b 为笛卡尔乘积,对笛卡尔乘积概念不熟的呢就自行搜索百科复习一下; 2、
select
* from a,b where a.c=b.c 等价于
select
* from a inner join b on a.c=b.c; 3、
select
* from a left join b on a.c=b.c 将a表查询的结果去b中做匹配,匹配不到的就显示为null,所以
返回
的总数为表a中行数; 4、
Select
count(*) from与
Select
* from的区别
语句一:
select
count(*) from T;作用:查询T表中数据的行数。语句二:
select
* from T;作用:查询T表中所有的数据。区别:语句一查询结果为一个数值,就是表中数据条数;语句二查询结果是表中所有数据,就是包括字段名字,字段里面的内容的详细信息。简单记:
Select
count(*)
返回
的是记录的数目
Select
*
返回
的是记录内容
select
* 的八宗罪
select
* 的八宗罪 背景(盛传于互联网的说法) 你经常可以在网上看到总有一些人会给你说不要使用
select
而是使用具体的列名代替,而且他们也给出了你一部分理由,现在我们也来扒扒这个
select
到底为什么不建议用! 第一宗 不必要的IO 这会导致 DBMS 读取所有的数据pages,但是这些数据你又不用,在后来的SQL中又可能被过滤掉了或者是直接没用,但是读取数据是需要成本的,尤其大字段例如 blob ,text 。
select
colunm_a,column_b(
select
* f
Delphi
5,388
社区成员
262,731
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章