2014-12-08 1 views
0

У меня есть таблица, которая выглядит примерно так:Выберите только одну строку из таблицы с наибольшим значением даты и времени

images 
    image_id  int 
    user_id  int 
    datetime  datetime 

Итак, мне нужно получить только один результат. Этот результат должен иметь конкретный user_id и должен быть только последней строкой в ​​таблице.

Я проверил много подобных вопросов, но не смог понять, как это сделать, и коды, которые я нашел, не работают вообще.

Как я могу это достичь?

Вот начало запроса:

SELECT * 
FROM image 
WHERE user_id = :user_id 

Как изменить этот запрос, чтобы выбрать только самую последнюю строку с определенным user_id?

+1

добавить эту строку в конце 'порядке даты и времени предела по убыванию 1' –

ответ

1

Вы можете использовать заказ по статье, как это:

SELECT * 
FROM image 
WHERE user_id = :user_id ORDER BY datetime DESC LIMIT 1 
+0

Спасибо, это сработало! –

+1

Добро пожаловать! –

0

Для SQL Server можно использовать:

SELECT TOP(1) * 
FROM image 
WHERE user_id = :user_id 
ORDER BY datetime DESC 
+3

Top для mssql не в mysql – Arion

0

Для MySQL попробовать следующее:

SELECT * FROM изображения
WHERE user_id =: user_id
ORDER BY datetime DES C предел 1

limit будет работать с MySQL

Для получения дополнительной информации о заявлениях MySql посмотреть здесь: http://dev.mysql.com/doc/refman/5.0/en/sql-syntax.html

0

Выберите * из изображений где user_id =: user_id Сортировка даты и времени DESC Предел 1

Надеюсь, что он работает :)

0

С помощью предельных вы можете получить необходимые данные No.of

limit required_no. 
Смежные вопросы