设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 2505|回复: 14
打印 上一主题 下一主题

[查询] 返回记录数为0的查询语句怎么写最好?

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2007-8-24 10:58:55 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
比如一个客户表有10万条记录,要建一个查询返回0条记录,可以这样写(ID是主键):

Select * From 客户表 Where ID Is Null
或者
Select * From 客户表 Where ID <> [ID]
或者
Select * From 客户表 Where ID = (ID字段永远不会出现的值)
等等

但是这样的查询是不是要对10万个[ID]进行检查呀?
如果是这样的话,有什么查询语句可以不检查记录内容而返回0条记录?
或者还有其他什么可以提高查询效率的方法……

请各位高手赐教!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
15#
发表于 2007-8-27 10:04:35 | 只看该作者
原帖由 t小宝 于 2007-8-24 16:31 发表
楼上说得对,不过,我主要还是想了解一下查询的机理。

还发现以下几句都可以返回0记录:

Select * From 客户表 Where Null

Select * From 客户表 Where False

Select * From 客户表 Where 1=2
...


第2、3、4句都可以肯定是不会检索的,第1句不清楚会不会检索
14#
发表于 2007-8-27 09:59:42 | 只看该作者
只要id是主键,用id检索都是很快的。
13#
发表于 2007-8-24 21:35:26 | 只看该作者
我用:Select * From 客户表 Where 1=2
12#
发表于 2007-8-24 16:52:27 | 只看该作者
都一样的,条件九不答十

点击这里给我发消息

11#
 楼主| 发表于 2007-8-24 16:31:03 | 只看该作者
楼上说得对,不过,我主要还是想了解一下查询的机理。

还发现以下几句都可以返回0记录:

Select * From 客户表 Where Null

Select * From 客户表 Where False

Select * From 客户表 Where 1=2

Select * From 客户表 Where 1<>1

就是不知道哪种效率最好,原因是什么?会不会是上面第二种呢?
10#
发表于 2007-8-24 13:38:31 | 只看该作者
没有看到楼主的例子,既然5楼的猜对了,我提一点自己的想法:在主窗体加载时或在你想录入记录时,把主窗体的相关数据设为子窗体中相应字段没有的值就可以了,什么查询都不要.
9#
发表于 2007-8-24 13:08:54 | 只看该作者
原帖由 andymark 于 2007-8-24 12:45 发表
这种方法应该是可以的
Select * From 客户表 Where ID = (ID字段永远不会出现的值)


因为自动编号永远不会是0, 所以符合这个条件
8#
发表于 2007-8-24 13:07:48 | 只看该作者
那就直接在查询里面做好了

其实,只要查询里面没有域函数,在有11万条记录下,速度和空表相差不会超过2秒的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
7#
发表于 2007-8-24 12:45:46 | 只看该作者
这种方法应该是可以的
Select * From 客户表 Where ID = (ID字段永远不会出现的值)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-29 22:49 , Processed in 0.097675 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表