2013-08-30 2 views
-2

Не могли бы вы помочь мне. Я пытаюсь получить записи в день, а также первую запись на следующий день (2013-08-31).Выбрать следующие данные в запросе

Вот что я пробовал:

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

Сначала по каким критериям? – Barmar

ответ

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 
+0

, если я использую union, и я ограничиваю его только 1, чтобы хорошо отображались записи. я хочу, чтобы все записи 2013-08-30, а также первая запись на следующий день. в одном запросе. Благодарю за ответ! – zero

+0

Вы можете поместить предложение LIMIT только на один из запросов в UNION. Я добавил его к моему ответу. – Barmar

0

кулак запись, нужен столбец, который содержит номер или дату, которые мы можем найти MAX() или еще что-то заказывать его.

Так что в вашем случае я предполагаю, что у вас есть столбец vehicle_id с данными целочисленного типа и autonumber.

Таким образом, ваш запрос:

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

И вы получите Ват вы хотите

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'

+0

no sir Я просто хочу получить запись в конкретный день, например, 2013-08-30 в этот день. скажем, что в тот день 10 записей или больше, тогда я хочу получить ТАКЖЕ первую запись на следующий день. Только в одном запросе? это возможно? – zero

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);

может любой один лучше один? спасибо!

Смежные вопросы