选择查询中的下一个数据

时间:2013-08-30 09:19:51

标签: mysql sql

你能帮我吗?我试图获得每天的记录以及第二天的第一次记录(2013-08-31)。

以下是我的尝试:

SELECT * FROM vehicle WHERE `number` = 'ABC123' AND `date`='2013-08-30');

4 个答案:

答案 0 :(得分:0)

这将获得第二天的第一条记录:

SELECT *
FROM vehicle
WHERE number = 'ABC123' AND date = '2013-08-31'
ORDER by <some column>
LIMIT 1

如果您希望将这两个结果都放在一个查询中,请将它们与UNION

连接
SELECT *
FROM (SELECT *
      FROM vehicle
      WHERE number = 'ABC123' AND date = '2013-08-31'
      ORDER BY <some column>
      LIMIT 1) AS next_day
UNION ALL
     (SELECT *
      FROM vehicle
      WHERE number = 'ABC123' AND date = '2013-08-30'
     ) AS first_day

答案 1 :(得分:0)

第一次记录,需要一个包含数字或日期的列,我们可以找到MAX()或其他内容来订购它。

因此,在您的情况下,我假设您有一个包含整数类型数据的列vehicle_id autonumber

所以你的查询是:

SELECT * FROM vehicle WHERE date = '2013-08-30' ORDER BY vehicle_id DESC LIMIT 1

你会得到你想要的wat

答案 2 :(得分:0)

试试这个

$query = "SELECT * FROM vehicle
WHERE
   number = 'ABC123'
   AND date = '".date('Y-m-d')."'
   AND date = '".date('Y-m-d',strtotime("+1 days"))."'";

这将返回当前日期和下一个日期的日期,即当前日期为'2013-08-30',下一日期为'2013-08-31'

答案 3 :(得分:0)

我使用这种方法,但它的工作却反应缓慢。

(SELECT * FROM vehicle WHERE号码= 'ABC123' AND日期='2013-08-30' ORDER by date asc) UNION (SELECT * FROM vehicle WHERE号码= 'ABC123' AND日期='2013-08-30' ORDER by date asc limit 1);

任何人都可以有更好的吗?谢谢!