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());
}
}
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
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.
SELECT * FROM TABLE ORDER BY ID DESC LIMIT 1
Ja, das ist MySQL, SQL Server:
SELECT TOP 1 * FROM Table ORDER BY ID DESC
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!
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.
SELECT * FROM table ORDER BY Id DESC LIMIT 1
Das letzte ist nur das erste, wenn Sie Ihre Bestellung stornieren.
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
Ich denke das sollte es tun.
declare @x int;
select @x = max(id) from table_name;
select * from where id = @x;
$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);
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.
Sie können auch so etwas tun:
SELECT LAST (column_name) AS LAST_CUSTOMER FROM table_name;
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