Не могли бы вы помочь мне. Я пытаюсь получить записи в день, а также первую запись на следующий день (2013-08-31).Выбрать следующие данные в запросе
Вот что я пробовал:
SELECT * FROM vehicle WHERE `number` = 'ABC123' AND `date`='2013-08-30');
Не могли бы вы помочь мне. Я пытаюсь получить записи в день, а также первую запись на следующий день (2013-08-31).Выбрать следующие данные в запросе
Вот что я пробовал:
SELECT * FROM vehicle WHERE `number` = 'ABC123' AND `date`='2013-08-30');
Это позволит получить первую запись на следующий день:
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
, если я использую union, и я ограничиваю его только 1, чтобы хорошо отображались записи. я хочу, чтобы все записи 2013-08-30, а также первая запись на следующий день. в одном запросе. Благодарю за ответ! – zero
Вы можете поместить предложение LIMIT только на один из запросов в UNION. Я добавил его к моему ответу. – Barmar
кулак запись, нужен столбец, который содержит номер или дату, которые мы можем найти MAX()
или еще что-то заказывать его.
Так что в вашем случае я предполагаю, что у вас есть столбец vehicle_id
с данными целочисленного типа и autonumber.
Таким образом, ваш запрос:
SELECT * FROM vehicle WHERE date = '2013-08-30' ORDER BY vehicle_id DESC LIMIT 1
И вы получите Ват вы хотите
Попробуйте
$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'
no sir Я просто хочу получить запись в конкретный день, например, 2013-08-30 в этот день. скажем, что в тот день 10 записей или больше, тогда я хочу получить ТАКЖЕ первую запись на следующий день. Только в одном запросе? это возможно? – zero
Я использую этот метод, и это работа, но медленный отклик.
(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);
может любой один лучше один? спасибо!
Сначала по каким критериям? – Barmar