这是一个从表中选择所有记录的示例代码。有人能告诉我如何选择该表的最后一条记录吗?

select * from table

当我使用:选择*从表顺序由ID DESC限制 第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());
    }
}

当前回答

假设你有一个Id列:

SELECT TOP 1 *
  FROM table
 ORDER
    BY Id DESC;

同样,这也适用于SQL Server。我认为MySQL你可能需要使用:

SELECT *
  FROM table
 ORDER
    BY Id DESC
 LIMIT 1

但是,我不是百分之百确定。

EDIT

看看其他答案,我现在100%相信我是正确的MySQL语句:o)

EDIT

刚刚看到你最新的评论。你可以这样做:

SELECT MAX(Id)
  FROM table

这会让你得到最高的Id号。

其他回答

要获取sql数据库的最后一行,请使用以下sql字符串:

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

输出:

最后一行你的数据库!

SELECT * FROM table ORDER BY Id DESC LIMIT 1
SELECT * FROM TABLE ORDER BY ID DESC LIMIT 1

是的,这是mysql, SQL Server:

SELECT TOP 1 * FROM Table ORDER BY ID DESC

如果你有一个自增字段(比如ID),那么你可以这样做: SELECT * FROM foo WHERE ID = (SELECT max(ID) FROM foo)

在表设计中使用自动行标识符始终是一种良好的实践,例如

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

,那么你可以通过

 select * from yourTable where rowID =  @@IDENTITY