请问下面的两条语句其查询效率比较怎么样? 第二条写错了,where id = '1000' 应该为where id = 1000,后面的类似! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 晕了,先不讨论效率问题,首先第二种写法就不简洁。至少可以写成:select id, name, sex from student where id =1000 or id =1001 or id = 1002;吧 select id, name, sex from student where id between 1000 and 1002 首先我这样写当然有我的目的,当然知道这样不简洁,我这样写只是为了在程序中方便实现!因为这样的语句是通过一个for循环生成的,事先我并不知道我要查询的表,以及id的值!也就是说,表明和id值不能写死了!因为他们得知需要通过查询才能得知。我只想知道第二种方法跟第一种方法比较,他们的性能谁好! 当然是第一种方法好了,第一种方法只要对表扫描一次,而第二种,有多少个union就要扫描多少次! 如果不知道id的范围的话,还是用select id, name, sex from student where id =1000 or id =1001 or id = 1002...通过拼接where子句来实现。因为用in可能会忽略索引。另外union肯定比这两种慢。 采用第二种写法。不过既然id不重复,就把union改为union all,效率会更高!你不妨试一下! darkhorsedba(老牛) union all 是干什么的?怎么用? to imjack(#__JACK__) :union all 返回两个集合的并集,包括重复行,union 返回两个集合的并集,删除重复行 to imjack(#__JACK__) : 第二种快哦! 语句错误,, 问个问题 建立视图时出现如下问题,请各位大大看看 正则表达式 函数索引排序?都用在什么地方? oracle 多用户 同步 如何获取一棵树的所有叶子? 这种情况如何对月份分组后取值? 求一条查询语句 大G们,我遇到了个存储过程的问题,今天就要交任务了,救救小M啊,在线急等 急!如何提高查询速度? 能否在存储过程返回结果集?
至少可以写成:
select id, name, sex
from student
where id =1000 or id =1001 or id = 1002;吧
from student
where id between 1000 and 1002
我只想知道第二种方法跟第一种方法比较,他们的性能谁好!
select id, name, sex
from student
where id =1000 or id =1001 or id = 1002...
通过拼接where子句来实现。
因为用in可能会忽略索引。
另外union肯定比这两种慢。