我正在尝试查询与几个特定日期匹配的所有行的表。日期不是连续的,并且不希望返回整个日期范围的数据。具体日期的数量可能很大,几百个。该Date
字段已编入索引,因此我想利用它。
将Date
字段转换为字符串并查询字符串比较感觉有点懒惰/性能不佳,并且会丢弃任何索引。像这样(下)的东西可以正常工作,但我担心性能和扫描表:
SELECT Date,Time,Open,High,Low,Close,Volume FROM minuteBarTable
WHERE DATE(Date) IN ('2004-07-13','2011-09-01','2007-12-12');
使用一块 ' OR 's 具有正确的效果和正确的结果,但我想找到一种更优雅/可扩展的方法。数百个日期可能会变得有点笨拙:
SELECT Date,Time,Open,High,Low,Close,Volume FROM minuteBarTable
WHERE Date='2004-07-13' OR Date='2011-09-01' OR Date='2007-12-12';
' OR的块在这里是更有效的方法吗?