Выберите последнюю строку в MySQL



как я могу SELECT последняя строка в таблице MySQL?



Я INSERTing data и мне нужно получить значение столбца из предыдущей строки.



здесь auto_increment в таблице.

675   8  

8 ответов:

Да, там есть auto_increment

Если вы хотите последнюю все строки в таблице, то это, наконец, время, когда MAX(id) это правильный ответ! Вид:

SELECT fields FROM table ORDER BY id DESC LIMIT 1;

имейте в виду, что таблицы в реляционных базах данных это просто набор строк. А множества в математике - это неупорядоченные коллекции. Нет первой или последней строки; нет предыдущей строки или следующей строки.

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

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

SELECT    *
FROM      your_table
ORDER BY  your_auto_increment_field DESC
LIMIT     1;

смотрите, как мы сначала сортируем набор неупорядоченных строк по your_auto_increment_field (или как там у вас это называется) в порядке убывания. Затем мы ограничиваем результирующий набор только первой строкой с LIMIT 1.

на таблицы с большим количеством строк два запроса, вероятно, быстрее...

SELECT @last_id := MAX(id) FROM table;

SELECT * FROM table WHERE id = @last_id;

вы можете объединить два запроса, предложенные @spacepille в один запрос, который выглядит следующим образом:

SELECT * FROM `table_name` WHERE id=(SELECT MAX(id) FROM `table_name`);

Он должен работать очень быстро, но на таблицах INNODB это доля миллисекунды медленнее, чем ORDER+LIMIT.

сделать это просто использовать: PDO::lastInsertId

http://php.net/manual/en/pdo.lastinsertid.php

Если вы хотите, чтобы последний был добавлен, добавьте метку времени и выберите упорядоченный в обратном порядке по самой высокой метке времени, ограничение 1. Если вы хотите перейти по ID, Сортировать по ID. Если вы хотите использовать тот, который вы только что добавили, используйте mysql_insert_id.

SELECT * FROM adds where id=(select max(id) from adds);

этот запрос используется для выборки последней записи в таблице.

можно использовать OFFSET на :

SELECT * FROM aTable LIMIT 1 OFFSET 99

в случае, если ваша таблица имеет 100 строк, это вернет последнюю строку, не полагаясь на primary_key

Comments

    Ничего не найдено.