2016-01-10 2 views
2

У меня есть базы данных MySQL со следующей структурой:MySQL выбрать последнюю запись только для записи

custodian | counta | countc | countc | total | date 
------------------------------------------------------- 
ed  | 1  | 2  | 3  | 6  | 1/1/2016 
ed  | 2  | 3  | 5  | 10 | 1/2/2016 
ed  | 2  | 3  | 6  | 11 | 1/3/2016 
ed  | 1  | 3  | 5  | 9  | 1/4/2016 
fred  | 1  | 2  | 3  | 6  | 1/1/2016 
fred  | 2  | 3  | 5  | 10 | 1/2/2016 
fred  | 2  | 3  | 6  | 11 | 1/3/2016 
fred  | 1  | 3  | 5  | 9  | 1/4/2016 

Как вернуть последнюю запись для хранителя ценных бумаг? Я играл с этим условием where date >= DATE_SUB(NOW(),INTERVAL 59 MINUTE), так как таблица обновляется ежечасно, но если я дважды обновляю скрипт за час, я бы вернул более одного результата для каждого хранителя.

Любые советы?

ответ

2

Вы должны объединить ORDER BY и LIMIT:

SELECT * 
FROM yourTableName 
WHERE custodian = 123 
ORDER BY `date` DESC 
LIMIT 1 
+0

Только что передо мной! В связи с этим я удивлен, что «LIMIT» не выделяется синтаксисом. – worldofjr

0

Вы могли бы попробовать это

SELECT * FROM tbl ORDER BY date DESC LIMIT 1 

Самая последняя дата будет первой записи при заказе decendingly, и ограничивая выбор до 1 означает вы получаете только последнюю запись.

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