Как выбрать последнюю запись таблицы в SQL? - PullRequest
91 голосов
/ 04 марта 2011

Это пример кода для выбора всех записей из таблицы. Может кто-нибудь показать мне, как выбрать последнюю запись этой таблицы?

select * from table

Когда я использую: SELECT * FROM TABLE ORDER BY ID DESC LIMIT Я получаю эту ошибку: Строка 1: Неверный синтаксис рядом с «LIMIT». Это код, который я использую:

private void LastRecord()
{
    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["HELPDESK_OUTLOOKConnectionString3"].ToString());

    conn.Open();
    SqlDataReader myReader = null;
    SqlCommand myCommand = new SqlCommand("SELECT * FROM HD_AANVRAGEN ORDER BY " +
                "aanvraag_id DESC LIMIT 1", conn);
    myReader = myCommand.ExecuteReader();
    while (myReader.Read())
    {
        TextBox1.Text = (myReader["aanvraag_id"].ToString());
        TextBox1.Text += (myReader["wijziging_nummer"].ToString());
        TextBox1.Text += (myReader["melding_id"].ToString());
        TextBox1.Text += (myReader["aanvraag_titel"].ToString());
        TextBox1.Text += (myReader["aanvraag_omschrijving"].ToString());
        TextBox1.Text += (myReader["doorlooptijd_id"].ToString());
        TextBox1.Text += (myReader["rapporteren"].ToString());
        TextBox1.Text += (myReader["werknemer_id"].ToString());
        TextBox1.Text += (myReader["outlook_id"].ToString());
    }
}

Ответы [ 13 ]

239 голосов
/ 04 марта 2011

Без дополнительной информации, какую базу данных и т. Д. Мы можем сделать лучше всего:

Sql Server

SELECT TOP 1 * FROM Table ORDER BY ID DESC

MySql

SELECT * FROM Table ORDER BY ID DESC LIMIT 1
17 голосов
/ 04 марта 2011

Предполагается, что у вас есть столбец Id:

SELECT TOP 1 *
  FROM table
 ORDER
    BY Id DESC;

Кроме того, это будет работать на SQL Server.Я думаю, что MySQL вам может понадобиться:

SELECT *
  FROM table
 ORDER
    BY Id DESC
 LIMIT 1

Но я не уверен на 100% в этом.

РЕДАКТИРОВАТЬ

Глядя на другие ответы, я теперь на 100% уверен, что я прав в выражении MySQL: o)

EDIT

Только что видел ваш последний комментарий.Вы можете сделать:

SELECT MAX(Id)
  FROM table

Это даст вам самый высокий номер Id.

7 голосов
/ 04 марта 2011
SELECT * FROM TABLE ORDER BY ID DESC LIMIT 1

Да, это MySQL, SQL Server:

SELECT TOP 1 * FROM Table ORDER BY ID DESC
6 голосов
/ 10 января 2018
SELECT * FROM TABLE WHERE id = (SELECT MAX(id) FROM TABLE);

SELECT MAX(id) означает, что, получив самый большой идентификатор в таблице, он возвращает число, следовательно, это максимальный идентификатор, теперь использующий WHERE id = maxId. Вы можете получить строку с наибольшим идентификатором, что означает последнюю строку, если выВы используете auto_increment.

6 голосов
/ 21 марта 2017

для получения последней строки SQL-базы данных используйте эту строку sql:

SELECT * FROM TableName WHERE id=(SELECT max(id) FROM TableName);

Вывод:

Последняя строка вашего БД!

3 голосов
/ 04 марта 2011
SELECT * FROM table ORDER BY Id DESC LIMIT 1
2 голосов
/ 04 марта 2011

Последний - только первый, когда вы отменяете заказ.

0 голосов
/ 04 мая 2019

Я думаю, что это должно сделать это.

declare @x int;
select @x = max(id) from table_name;
select * from where id = @x;
0 голосов
/ 25 апреля 2019

В вашей таблице всегда полезно иметь автоматический идентификатор строки, такой как

 [RowID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL

, тогда вы можете идентифицировать свою последнюю строку с помощью

 select * from yourTable where rowID =  @@IDENTITY 
0 голосов
/ 08 марта 2019
select ADU.itemid, ADU.startdate, internalcostprice 
from ADUITEMINTERNALCOSTPRICE ADU

right join

   (select max(STARTDATE) as Max_date, itemid 
   from ADUITEMINTERNALCOSTPRICE
   group by itemid) as A

on A.ITEMID = ADU.ITEMID
and startdate= Max_date
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...