2012-03-27 3 views
2

Мне нужно получить последние 3 записи таблицы и поместить их в порядке возрастания.Как заказать один и тот же столбец 2x?

Следующий запрос вернет последние 3 записи таблицы, но он не будет сортировать их.

select column_1, column_2 from table_name order by id desc limit 3 

Есть ли способ отсортировать эти записи, не используя подзапрос?

Я попытался

select column_1, column_2 from table_name order by id desc, id asc limit 3 

, но это не сработало.

+2

Почему не с подзапросом? это будет легко и без проблем, потому что только 3 записи ... –

ответ

-1

Если вы хотите использовать PDO:

$stmt = $dbh->prepare('SELECT * FROM your-table ORDER BY date DESC Limit 3'); 
+1

-1: Простое добавление Perl-кода вокруг запроса не является ответом. Если вы хотите сортировать их на стороне клиента, вы должны это сказать, и вы должны показать код, который их сортирует. –

+0

Это 'PHP', поскольку вопрос помечен. Это пример запроса PDO, показывающий, что код PDO в этом случае не имеет значения. –

+0

Да, PHP-тег неверен - в этом вопросе нет ничего конкретного PHP, и я уверен, что добавление этого кода PDO не приближало бы аскчика к правильному ответу. –

4

На мой взгляд, я не думаю, что любой другой способ без подзапросом сделает это легко

Попробуйте ниже:

SELECT a.* from 
(SELECT column_1, column_2 FROM table_name ORDER BY id DESC LIMIT 3) as a 
ORDER BY a.id ASC 

Подзапрос - неплохая идея в этой ситуации, когда вы используете ее с limit.

+0

Вы настаиваете на этой версии, которая имеет 2 ошибки. MySQL будет жаловаться на отсутствие псевдонима для подзапроса, а 'ORDER BY id' не может найти какой-либо' id'. –

+0

ОК. Используется псевдоним с subquery.Try с обновленным ответом –

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