在mysql中查询范围的最佳方法

| 我正在设计一个查询,该查询根据表示为范围(特别是年份)的参数从大型表中提取行。在某些情况下,我想基于3个特定值提取行(例如,提取客户编号为#001,#002和#003的客户记录)。 对于范围问题,我想知道WHERE语句后面的条件语法是否比其他语句更有效: 在() 之间() 高范围> =数据> =低范围 对于IN()选项,我可以编写一个脚本,将年份转换为从low.range到high.range包括在内的年份列表。因此,对于2000到2004年的范围,它将是IN(\'2000 \',\'2001 \',\'2002 \',\'2003 \',\'2004 \')。这将是MySQL之外的一个额外的编程步骤,但是对我来说并不难。 我意识到我还有其他方法可以加快处理速度(例如使用聚簇索引),但是我只是想了解WHERE语句后使用哪种sql语法是否有任何区别。     
已邀请:
        在作品之间的幕后,就像high.range> = data> = low.range In(condition1,condition2,condition3)的工作方式与(condition1或condition2或condition3)相同 我希望如果日期数大于1或2,两者之间的工作速度会更快。 例如(1000> 1001)与(1000 = 998或1000 = 996或1000 = 995等)。     
        编辑:对不起,我可能误解了您的问题。 我相信在这种情况下,ѭ0是更适合ѭ1appropriate的函数,但是我想确定一些基准。 如果您使用的是TIMESTAMP,DATE或DATETIME列,则可以使用
year
where year(column) > 2000 or year(column) < 2005
month
week
day
功能也有。 http://dev.mysql.com/doc/refman/5.1/zh-CN/datetime.html     

要回复问题请先登录注册