Dit is een voorbeeldcode om alle records van een tabel te selecteren. Kan iemand me laten zien hoe ik het laatste record van die tabel kan selecteren?
select * from table
Wanneer ik gebruik: SELECT * FROM TABLE ORDER BY ID DESC LIMIT
Ik krijg deze foutmelding: Lijn 1: onjuiste syntaxis in de buurt van ‘limiet’.
Dit is de code die ik gebruik:
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());
}
}
Antwoord 1, Autoriteit 100%
Zonder meer informatie, welke database enz. Het beste wat we kunnen doen is iets als
SQL Server
SELECT TOP 1 * FROM Table ORDER BY ID DESC
mysql
SELECT * FROM Table ORDER BY ID DESC LIMIT 1
Antwoord 2, Autoriteit 10%
Om de laatste Row van een SQL-database te krijgen, gebruik deze SQL-string:
SELECT * FROM TableName WHERE id=(SELECT max(id) FROM TableName);
Uitgang:
Laatste regel van uw DB!
Antwoord 3, Autoriteit 6%
Aangenomen dat u een ID-kolom hebt:
SELECT TOP 1 *
FROM table
ORDER
BY Id DESC;
Ook werkt dit op SQL Server. Ik denk dat MySQL je misschien moet gebruiken:
SELECT *
FROM table
ORDER
BY Id DESC
LIMIT 1
Maar ik ben hier niet 100% zeker van.
bewerken
Kijkend naar de andere antwoorden, ik ben nu 100% vertrouwen dat ik corrigeer met de MySQL-instructie: O)
bewerken
Ik heb net je nieuwste opmerking gezien. Je zou kunnen doen:
SELECT MAX(Id)
FROM table
Hierdoor krijgt u het hoogste ID-nummer.
Antwoord 4, Autoriteit 2%
SELECT * FROM Table ORDER BY ID DESC LIMIT 1
Ja, dit is MySQL, SQL Server:
SELECT TOP 1 * FROM Table ORDER BY ID DESC
Antwoord 5
SELECT * FROM Table ORDER BY ID DESC LIMIT 1
Antwoord 6
Het is altijd een goede gewoonte om in uw tabelontwerp een automatische rij-ID te hebben, zoals
[RowID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL
, dan kunt u uw laatste rij herkennen aan
select * from yourTable where rowID = @@IDENTITY
Antwoord 7
MS SQL Server ondersteunt al vele jaren ANSI SQL FETCH FIRST
:
SELECT * FROM TABLE
ORDER BY ID DESC
OFFSET 0 ROWS FETCH FIRST 1 ROW ONLY
(Werkt met de meeste moderne databases.)
Antwoord 8
Als je een zelfverhogend veld hebt (zeg ID
), dan kun je zoiets doen als:
SELECT * FROM foo WHERE ID = (SELECT max(ID) FROM foo)
Antwoord 9
De laatste is slechts de eerste wanneer u uw bestelling ongedaan maakt.
Antwoord 10
Bijna alle antwoorden gaan ervan uit dat de ID-kolom is geordend (en misschien automatisch wordt verhoogd). Er zijn echter situaties waarin de ID-kolom nietis geordend, waardoor het ORDER BY-statement geen zin heeft.
De laatst ingevoerde ID is misschien niet altijd de hoogste ID, het is alleen de laatste (unieke) invoer.
Een mogelijke oplossing voor een dergelijke situatie is om direct een rij-ID te maken:
SET @r = 0;
SELECT * FROM (SELECT *, (@r := @r + 1) AS r_id FROM my_table) AS tmp
ORDER BY r_id DESC LIMIT 1;
Antwoord 11
In Oracle kunt u het volgende doen:
SELECT *
FROM (SELECT EMP.*,ROWNUM FROM EMP ORDER BY ROWNUM DESC)
WHERE ROWNUM=1;
Dit is een van de mogelijke manieren.
Antwoord 12
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
Antwoord 13
Ik denk dat dit het zou moeten doen.
declare @x int;
select @x = max(id) from table_name;
select * from where id = @x;
Antwoord 14
$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);
Antwoord 15
Je kunt ook zoiets als dit doen:
SELECT LAST (column_name) AS LAST_CUSTOMER FROM table_name;
Antwoord 16
Ik heb voor Ricardo gestemd. Eigenlijk is max veel efficiënter dan sorteren.
Zie de verschillen. het is geweldig.
Ik moest de laatste rij/updaterecord (timeStamp) ophalen
`sqlite> select timeStamp from mypadatav2 order by timeStamp desc limit 1;
2020-03-11 23:55:00
Run Time: real 1.806 user 1.689242 sys 0.117062`
`sqlite> select max(timeStamp) from mypadatav2;
2020-03-11 23:55:00
Run Time: real 0.553 user 0.412618 sys 0.134340`