Maison >base de données >tutoriel mysql >Comment récupérer la Nième ligne d'une table de base de données quel que soit le SGBD ?

Comment récupérer la Nième ligne d'une table de base de données quel que soit le SGBD ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-20 16:57:12877parcourir

How to Retrieve the Nth Row from a Database Table Regardless of the DBMS?

Méthodes indépendantes de la base de données pour récupérer la Nième ligne

Aperçu

Accéder à une ligne particulière de la table de base de données par sa position est une tâche fréquente. Bien que les systèmes de bases de données individuelles (SGBD) fournissent leurs propres méthodes, plusieurs approches fonctionnent sur différentes plates-formes de bases de données.

Techniques cross-DBMS

  • Clause OFFSET-LIMIT :

    • PostgreSQL, MySQL : Utiliser SELECT ... LIMIT y OFFSET x
  • Fonctions de la fenêtre :

    • Oracle, SQL Server, DB2 : Utiliser les fonctions de fenêtre comme suit :
    <code class="language-sql">  SELECT * FROM (
        SELECT
          ROW_NUMBER() OVER (ORDER BY key ASC) AS rownumber,
          columns
        FROM tablename
      ) AS foo
      WHERE rownumber = n</code>

Solutions spécifiques aux SGBD

  • SQL Server : L'approche de la fonction de fenêtre (telle que décrite ci-dessus) est applicable.

  • MySQL : La clause OFFSET-LIMIT (telle que décrite ci-dessus) est la méthode préférée.

  • PostgreSQL : La clause OFFSET-LIMIT et les fonctions de fenêtre (pour les versions 8.4 et ultérieures) conviennent.

  • SQLite : La prise en charge des fonctions OFFSET-LIMIT et de fenêtre est disponible dans la version 3.25.0 et ultérieure.

  • Oracle : La méthode de la fonction fenêtre (telle que détaillée précédemment) est l'approche standard.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn