Tas*_*sto 104 sql sql-server sql-server-2008
这是一个从表中选择所有记录的示例代码.有人可以告诉我如何选择该表的最后一条记录吗?
select * from table
Run Code Online (Sandbox Code Playgroud)
当我使用: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());
}
}
Run Code Online (Sandbox Code Playgroud)
Adr*_*der 275
没有任何进一步的信息,我们可以做的最好的数据库等等
Sql Server
SELECT TOP 1 * FROM Table ORDER BY ID DESC
Run Code Online (Sandbox Code Playgroud)
MySQL的
SELECT * FROM Table ORDER BY ID DESC LIMIT 1
Run Code Online (Sandbox Code Playgroud)
Nei*_*ght 20
假设您有一个Id列:
SELECT TOP 1 *
FROM table
ORDER
BY Id DESC;
Run Code Online (Sandbox Code Playgroud)
此外,这将适用于SQL Server.我认为您可能需要使用MySQL:
SELECT *
FROM table
ORDER
BY Id DESC
LIMIT 1
Run Code Online (Sandbox Code Playgroud)
但是,我不是百分百肯定的.
编辑
看看其他答案,我现在100%确信我对MySQL声明是正确的:o)
编辑
刚刚看到你的最新评论.你可以这样做:
SELECT MAX(Id)
FROM table
Run Code Online (Sandbox Code Playgroud)
这将获得最高的身份证号码.
jar*_*rlh 12
FETCH FIRSTMS SQL Server多年来一直支持 ANSI SQL :
SELECT * FROM TABLE
ORDER BY ID DESC
OFFSET 0 ROWS FETCH FIRST 1 ROW ONLY
Run Code Online (Sandbox Code Playgroud)
(适用于大多数现代数据库。)
在表设计中拥有自动行标识符始终是一个很好的做法,例如
[RowID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL
Run Code Online (Sandbox Code Playgroud)
,那么你可以通过以下方式识别你的最后一行
select * from yourTable where rowID = @@IDENTITY
Run Code Online (Sandbox Code Playgroud)
SELECT * FROM TABLE ORDER BY ID DESC LIMIT 1
Run Code Online (Sandbox Code Playgroud)
是的,这是mysql,SQL Server:
SELECT TOP 1 * FROM Table ORDER BY ID DESC
Run Code Online (Sandbox Code Playgroud)
拿到最后一排一个的SQL的数据库使用SQL字符串:
SELECT * FROM TableName WHERE id=(SELECT max(id) FROM TableName);
Run Code Online (Sandbox Code Playgroud)
输出:
数据库的最后一行!
几乎所有答案都假设 ID 列是有序的(并且可能是自动递增的)。然而,在某些情况下,ID 列未排序,因此 ORDER BY 语句没有任何意义。
最后插入的 ID 可能并不总是最高的 ID,它只是最后一个(唯一)条目。
对于这种情况,一种可能的解决方案是动态创建行 ID:
SET @r = 0;
SELECT * FROM (SELECT *, (@r := @r + 1) AS r_id FROM my_table) AS tmp
ORDER BY r_id DESC LIMIT 1;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
590722 次 |
| 最近记录: |