SQL - выбор последних добавленных строк из таблицы с заданным диапазоном - PullRequest
1 голос
/ 26 января 2012

У меня есть таблица, в которой есть целые числа id (первичный ключ) и timestamp столбцы с добавленной датой (среди прочих).

как будет выглядеть синтаксис для извлечения id значений для десяти самых последних значений "добавленной даты" , как выглядит?

Ответы [ 4 ]

3 голосов
/ 26 января 2012

Если мы пойдем по названию вашего вопроса (10 последних строк):

SELECT `id`
  FROM `table`
 ORDER BY `date added` DESC
 LIMIT 10

Если мы перейдем к тому, что вы говорите в своем вопросе (добавлено 10 самых последних значений даты):

SELECT `id`
  FROM `table`
 WHERE `date added` IN ( SELECT DISTINCT `date added`
                           FROM `table`
                          ORDER BY `date added` DESC
                          LIMIT 10 )

Как я отмечал в своих комментариях, я в основном использую Transact-SQL, поэтому вам может потребоваться скорректировать любые пробелы в моих знаниях MySQL.

3 голосов
/ 26 января 2012
SELECT id
  FROM `table`
 ORDER BY `date added` DESC LIMIT 10
;
0 голосов
/ 26 января 2012

Если у вас есть первичный ключ с автоинкрементом, вы также можете заказать его по идентификатору:

SELECT `id`
 FROM `table`
 ORDER BY `id` DESC
 LIMIT 10

Преимущество заключается в том, что идентификатор уже имеет индекс, поэтому вы можете быстро его отсортировать.Но вы должны быть уверены, что вы не возитесь с идентификатором, поэтому он всегда в правильном порядке.

Если вы все равно используете date added, вам следует создать индекс для него.Но таблица будет занимать немного больше места таким образом.

0 голосов
/ 26 января 2012
SELECT id FROM `table` ORDER BY `date added` DESC LIMIT 10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...