MySQL - выбор последней вставленной строки проще всего
Мне просто нужно выбрать последнюю введенную строку, указанную условием, например:
SELECT ID from bugs WHERE user=Me
Мне нужно вернуть только самый последний идентификатор, введенный пользователем "Я". Есть ли простой способ сделать это? Спасибо.
Ответы
Ответ 1
Было бы лучше иметь столбец TIMESTAMP
, который по умолчанию равен CURRENT_TIMESTAMP
.. это единственное истинное предсказательное поведение, которое вы можете найти здесь.
Вторая лучшая вещь, которую вы можете сделать, это ORDER BY ID DESC LIMIT 1
и надеюсь, что самый новый идентификатор - самое большое значение.
Ответ 2
SELECT MAX(ID) from bugs WHERE user=Me
Ответ 3
Вы можете использовать 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;
Ответ 4
Один из способов добиться этого - заказать вам записи и ограничить 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
Ответ 5
В concurrency последней записью может быть не только запись, которую вы только что ввели. Лучше получить последнюю запись с использованием первичного ключа.
Если это поле автоматического приращения, используйте SELECT LAST_INSERT_ID();
, чтобы получить только что созданный идентификатор.
Ответ 6
SELECT * FROM `table_name`
ORDER BY `table_name`.`column_name` DESC
LIMIT 1
Ответ 7
Сразу после запуска запроса MySQL от php
получить это по
$lastid=mysql_insert_id();
это даст вам значение идентификатора автоматического увеличения идентификатора
Ответ 8
Похоже, что есть аналогичная тема, на которую уже дан ответ. Может ли это быть решение, которое вы ищете?
Ответ 9
ВЫБЕРИТЕ ID из ошибок, ГДЕ пользователь = Я ЗАКАЗАТЬ CREATED_STAMP DESC; BY CREATED_STAMP DESC извлекает те данные по индексу, который был первым создан последним.
Я надеюсь, что это решит вашу проблему