-2

你能帮我么。我正在尝试获取每天的记录以及第二天的第一条记录(2013-08-31)。

这是我尝试过的:

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

4 回答 4

0

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

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

所以你的查询是:

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

你会得到你想要的

于 2013-08-30T09:27:02.450 回答
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);

谁能有更好的?感谢!

于 2013-08-31T05:47:08.953 回答
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
于 2013-08-30T09:26:23.710 回答
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'

于 2013-08-30T09:33:44.430 回答