如何从表

时间:2016-01-04 04:17:44

标签: mysql sql

我有businessdates表,其中日期按升序排列(但不是连续的,因为某些日期是假日)。如果我必须在跳过“?”后选择日期,以下查询工作是否完美表格中最后一行的日期

         SELECT  date   FROM  businessdates    order by  date desc  limit ?,1 ;

(我在java代码的查询中绑定'?')

问题:如何根据某些已知日期跳过表格中间的某个位置,而不是从最后一行跳过。我猜是下面的东西,并会感谢任何建议

         SELECT  date   FROM  (select * from businessdates where date <= "somedate")     order by  date desc  limit ?,1 ;

2 个答案:

答案 0 :(得分:0)

听起来您正在寻找OFFSET关键字。

SELECT  date
FROM  businessdates
ORDER BY  date DESC  
LIMIT 1, OFFSET n ;

这将在nth行开始搜索。将n替换为您要从中开始搜索的行号。

  

SELECT查询中的OFFSET子句导致结果集在逻辑第一项之后开始一些行。

http://www.cloudera.com/content/www/en-us/documentation/archive/impala/2-x/2-1-x/topics/impala_offset.html

答案 1 :(得分:0)

你所展示的应该工作得很好。您可能希望使用between条件运算符来获取特定范围,然后将其限制为

SELECT  `date`
FROM  businessdates 
where `date` between 'somedate' and 'otherdate'
order by  `date` desc
limit ?,1;