it-roy-ru.com

MySQL - проще всего выбрать последнюю вставленную строку

Мне просто нужно выбрать последнюю введенную строку, указанную условием, например:

SELECT ID from bugs WHERE user=Me

Мне нужно вернуть только самый последний идентификатор, введенный пользователем «Я». Есть ли простой способ сделать это? Спасибо.

25
Thomas

Лучше всего иметь столбец TIMESTAMP со значением по умолчанию CURRENT_TIMESTAMP .. это единственное истинное прогнозирующее поведение, которое вы можете найти здесь.

Вторая лучшая вещь, которую вы можете сделать, это ORDER BY ID DESC LIMIT 1 и надеяться, что новейший идентификатор будет самым большим значением.

38
Matt

Вы можете использовать ORDER BY ID DESC, но это ПУТЬ быстрее, если вы идете по этому пути:

SELECT * FROM bugs WHERE ID = (SELECT MAX(ID) FROM bugs WHERE user = 'me')

Если у вас огромный стол, это может иметь существенное значение.

ПРАВКА

Вы даже можете установить переменную, если она вам нужна более одного раза (или если вы считаете, что ее легче читать).

SELECT @bug_id := MAX(ID) FROM bugs WHERE user = 'me';
SELECT * FROM bugs WHERE ID = @bug_id;
29
pmrotule
SELECT MAX(ID) from bugs WHERE user=Me
29
SiLent SoNG

Один из способов сделать это - упорядочить записи и ограничить их до 1. Например, если у вас есть следующая таблица («данные»). 

    id | user | price
   -------------------
    1  |  me  | 40.23
    2  |  me  | 10.23

Попробуйте следующий SQL-запрос

  select * from data where user='me' order by id desc limit 1
13
user1400718

В то же время последняя запись может не совпадать с той, которую вы только что ввели. Возможно, лучше получить последнюю запись, используя первичный ключ.

Если это поле с автоматическим приращением, используйте SELECT LAST_INSERT_ID();, чтобы получить идентификатор, который вы только что создали.

7
Wayne
SELECT * FROM `table_name` 
ORDER BY `table_name`.`column_name` DESC
LIMIT 1 
3
rommo roy

Сразу после запуска запроса MySQL от php

получить это по 

$lastid=mysql_insert_id();

это даст вам значение идентификатора автоматического увеличения идентификатора

0
pratik shourabh