it-swarm.com.de

Wie wählt man den letzten Datensatz einer Tabelle in SQL aus?

Dies ist ein Beispielcode, um alle Datensätze aus einer Tabelle auszuwählen. Kann mir jemand zeigen, wie ich den letzten Datensatz dieser Tabelle auswählen kann?

select * from table

Wenn ich SELECT * FROM TABLE ORDER BY ID DESC LIMIT .__ verwende, erhalte ich folgende Fehlermeldung: Zeile 1: Falsche Syntax in der Nähe von 'LIMIT' . Dies ist der Code, den ich verwende: 

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());
    }
}
79
SamekaTV

Ohne weitere Informationen, welche Datenbank usw. das Beste, was wir tun können, ist so etwas

SQL Server

SELECT TOP 1 * FROM Table ORDER BY ID DESC

MySql

SELECT * FROM Table ORDER BY ID DESC LIMIT 1
218
Adriaan Stander

Angenommen, Sie haben eine Id-Spalte:

SELECT TOP 1 *
  FROM table
 ORDER
    BY Id DESC;

Dies funktioniert auch auf SQL Server. Ich denke, dass Sie MySQL verwenden müssen:

SELECT *
  FROM table
 ORDER
    BY Id DESC
 LIMIT 1

Aber ich bin mir nicht zu 100% sicher.

EDIT

Bei den anderen Antworten bin ich jetzt zu 100% überzeugt, dass ich mit der MySQL-Anweisung richtig liege:

EDIT

Ich habe gerade Ihren letzten Kommentar gesehen. Du könntest es tun:

SELECT MAX(Id)
  FROM table

Dadurch erhalten Sie die höchste ID-Nummer.

17
Neil Knight
SELECT * FROM TABLE ORDER BY ID DESC LIMIT 1

Ja, das ist MySQL, SQL Server:

SELECT TOP 1 * FROM Table ORDER BY ID DESC
7
Simon

um die letzte Zeile einer SQL-Datenbank zu erhalten benutze diesen SQL-String:

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

Ausgabe:

Letzte Zeile deiner Datenbank! 

6
Ricardo Fercher
SELECT * FROM TABLE WHERE id = (SELECT MAX(id) FROM TABLE);

SELECT MAX(id) bedeutet, dass die größte ID in der Tabelle abgerufen wird. Daher gibt sie eine Zahl zurück. Dies ist die maximale ID, die jetzt mit WHERE id = maxId verwendet wird. Sie können die Zeile mit der größten ID abrufen, dh die letzte Zeile, wenn Sie auto_increment verwenden.

4
Mohamed Emad
SELECT * FROM table ORDER BY Id DESC LIMIT 1
3
user142019

Das letzte ist nur das erste, wenn Sie Ihre Bestellung stornieren.

2
jeje

Es ist immer eine gute Praxis in Ihrem Tabellenentwurf, eine automatische Zeilenidentifizierung zu haben, wie z

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

, dann können Sie Ihre letzte Zeile durch identifizieren

 select * from yourTable where rowID =  @@IDENTITY 
0
Jenna Leaf

Ich denke das sollte es tun.

declare @x int;
select @x = max(id) from table_name;
select * from where id = @x;
0
$sql="SELECT tot_visit FROM visitors WHERE date = DATE(NOW()) - 1 into @s                
$conn->query($sql);
$sql = "INSERT INTO visitors (nbvisit_day,date,tot_visit) VALUES (1,CURRENT_DATE,@s+1)";
$conn->query($sql);
0
Hani Charara

In Oracle können Sie Folgendes tun:

SELECT *
FROM (SELECT EMP.*,ROWNUM FROM EMP ORDER BY ROWNUM DESC)
WHERE ROWNUM=1;

Dies ist einer der möglichen Wege.

0
GeeDee

Sie können auch so etwas tun:

SELECT LAST (column_name) AS LAST_CUSTOMER FROM table_name;

0
vikas95prasad
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
0
Panjas51