valeur Comment sélectionner le dernier enregistrement d'une table en SQL?




vba access dernier enregistrement d une table (7)

Pour obtenir la dernière ligne d'une base de données SQL, utilisez cette chaîne sql:

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

Sortie:

Dernière ligne de votre db!

Ceci est un exemple de code pour sélectionner tous les enregistrements d'une table. Quelqu'un peut-il me montrer comment sélectionner le dernier enregistrement de cette table?

select * from table

Quand j'utilise: SELECT * FROM TABLE ORDER BY ID DESC LIMIT J'ai cette erreur: Ligne 1: Syntaxe incorrecte près de 'LIMIT'. C'est le code que j'utilise:

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

Le dernier est juste le premier lorsque vous inversez votre commande.


Dans Oracle, vous pouvez faire:

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

C'est l'un des moyens possibles.


Sans plus d'informations, quelle base de données etc le mieux que nous pouvons faire est quelque chose comme

Serveur SQL

SELECT TOP 1 * FROM Table ORDER BY ID DESC

MySql

SELECT * FROM Table ORDER BY ID DESC LIMIT 1

SELECT * FROM TABLE ORDER BY ID DESC LIMIT 1

Oui, c'est mysql, SQL Server:

SELECT TOP 1 * FROM Table ORDER BY ID DESC

En supposant que vous avez une colonne Id:

SELECT TOP 1 *
  FROM table
 ORDER
    BY Id DESC;

En outre, cela fonctionnera sur SQL Server. Je pense que MySQL vous devrez peut-être utiliser:

SELECT *
  FROM table
 ORDER
    BY Id DESC
 LIMIT 1

Mais, je ne suis pas sûr à 100% à ce sujet.

MODIFIER

En regardant les autres réponses, je suis maintenant 100% confiant que j'ai raison avec la déclaration MySQL: o)

MODIFIER

Juste vu votre dernier commentaire. Vous pourriez faire:

SELECT MAX(Id)
  FROM table

Cela vous obtiendra le numéro d'identification le plus élevé.


SELECT * FROM TABLE WHERE id = (SELECT MAX(id) FROM TABLE);




sql-server-2008