我有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 ;
答案 0 :(得分:0)
听起来您正在寻找OFFSET
关键字。
SELECT date
FROM businessdates
ORDER BY date DESC
LIMIT 1, OFFSET n ;
这将在nth
行开始搜索。将n替换为您要从中开始搜索的行号。
SELECT查询中的OFFSET子句导致结果集在逻辑第一项之后开始一些行。
答案 1 :(得分:0)
你所展示的应该工作得很好。您可能希望使用between
条件运算符来获取特定范围,然后将其限制为
SELECT `date`
FROM businessdates
where `date` between 'somedate' and 'otherdate'
order by `date` desc
limit ?,1;