IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Récupérer la 1ère ligne, 201ème, 401ème, etc


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Récupérer la 1ère ligne, 201ème, 401ème, etc
    Bonjour,
    je suis face à un problème que je n'arrive pas à résoudre.
    J'ai une liste de films assez longue (plusieurs milliers de films listés) donc j'ai divisé cette liste en pages de 200 films.

    Le truc, c'est que j'aimerai bien afficher le nom du premier film de la page quand on passe la souris sur l'index des pages, histoire de savoir directement où on va sans avoir à tatonner entre les pages.

    La seule solution que je voie pour le moment est une boucle for qui me lance une requete mysql avec un LIMIT. Mais lancer une trentaine de requetes avec LIMIT à chaque chargement de la page ça risque de bouffer un tas de ressources.

    Existe-t-il une solution plus simple et plus efficace ?
    Edit: J'utilise MySQL

    Merci.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 099
    Points : 28 390
    Points
    28 390
    Par défaut
    Tu aurais utilisé un SGBD prenant en charge les fonctions analytiques de regroupement, c'était assez simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT dat.*
    FROM matable AS dat
      INNER JOIN
        ( SELECT id
               , RANK() OVER (ORDER BY titre) AS ligne
          FROM matable
        ) AS ord
        ON ord.id = dat.id
    WHERE MOD(ligne, 200) = 1

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Merci beaucou pour la réponse

    Je ne peux pas changer de SGDB donc je vais simplement ajouter une colonne "rank" que je mettrai à jour à chaque modif de la table. C'est les bidouilles que l'on trouve sur google quand on cherche des infos par rapport à la focntion rank et mysql.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer le N° de ligne de la 1ère ligne d'un tableau
    Par deamonRav dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/04/2010, 11h12
  2. [CSV] Comment récupérer la 1ère ligne d'un fichier CSV
    Par lolitta_dz dans le forum C++Builder
    Réponses: 8
    Dernier message: 31/10/2008, 15h53
  3. Lire 1ère ligne fichier et récupérer 2eme ligne
    Par carmella dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 21/05/2008, 19h18
  4. [CSV] Comment récupérer la 1ère ligne d'un fichier CSV
    Par xianxian620 dans le forum Langage
    Réponses: 3
    Dernier message: 16/05/2008, 10h17
  5. Réponses: 4
    Dernier message: 21/02/2008, 22h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo