Récupérer le premier et dernier enregistrement sql

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par sff, 16 Juillet 2021.

  1. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    535
    J'aime reçus:
    0
    Bonjour à tous,

    je souhaite savoir comme je peux récupérer le premier et dernier enregistrement d'une table SQL sans effectuer 2 requêtes distinctes.

    La requête suivante récupère évidemment l'enregistrement le plus récent (le dernier enregistrement) mais comment faire pour récupérer également le premier ?

    Code:
    $select = $bdd->query('SELECT price FROM price_history ORDER BY id DESC LIMIT 1');
     
    $element = $select->fetch();
    $select->closeCursor();
     
    echo $element['price'];
    Merci d'avance pour votre aide
     
  2. rick38
    rick38 WRInaute passionné
    Inscrit:
    23 Février 2013
    Messages:
    1 780
    J'aime reçus:
    270
    Pour une question de perf que tu veux qu'une seule requête ?

    Parce qu'il a bien UNION qui permet de concaténer 2 selects, mais en fait ça fait deux requêtes en une...
    Sinon un select de toute la table, si la table est petite...
     
    #2 rick38, 17 Juillet 2021
    Dernière édition: 17 Juillet 2021
  3. passion
    passion WRInaute accro
    Inscrit:
    6 Janvier 2006
    Messages:
    3 937
    J'aime reçus:
    183
    quelque chose du genre :
    Code:
    SELECT
      MAX(id) AS dernier_id,
      MIN(is) AS premier_id
    FROM matable
     
  4. rick38
    rick38 WRInaute passionné
    Inscrit:
    23 Février 2013
    Messages:
    1 780
    J'aime reçus:
    270
    Mais il ne veut pas le prix minimum et maximum, mais le premier et le dernier de la table.
     
  5. mickou51
    mickou51 WRInaute discret
    Inscrit:
    8 Janvier 2016
    Messages:
    178
    J'aime reçus:
    20
    Premier de la table:
    Code:
    select * from table order by asc limit 1
    Dernier de la table:
    Code:
    select * from table order by desc limit 1
     
  6. rick38
    rick38 WRInaute passionné
    Inscrit:
    23 Février 2013
    Messages:
    1 780
    J'aime reçus:
    270
    Avec un UNION entre les deux pour faire une seule requête, mais cela reste 2 requêtes, donc je pense que sa demande est impossible à moins de sortir toute la table et de trouver le premier et le dernier par le code...
     
  7. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 925
    J'aime reçus:
    78
    $aid = $DBH->prepare("SELECT price FROM price_history ORDER BY id DESC", array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
    $aid->execute();

    $row = $aid->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_LAST);
    $lowest_article_id = $row[0];

    $row = $aid->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_FIRST);
    $highest_article_id = $row[0];
     
Chargement...
Similar Threads - Récupérer premier dernier Forum Date
Récupérer les 10 premiers articles de chaque rubrique? - Mysql Développement d'un site Web ou d'une appli mobile 7 Septembre 2013
FORMULAIRE FB ADS récupérer les données Facebook 28 Juillet 2021
Comment récupérer le solde impayé de mon compte Adsense ? AdSense 26 Juin 2021
Search Console Sitemaps non indéxés ""Impossible de recuperer le sitemap" Crawl et indexation Google, sitemaps 23 Juillet 2020
Récupérer backlinks vers liens morts : fausse bonne idée ? Netlinking, backlinks, liens et redirections 6 Avril 2020
Récupérer le contenu d'une vidéo youtube Le café de WebRankInfo 23 Mars 2020
Comment récupérer un compte insta ouvert par un cybersquatteur ? Autres réseaux sociaux 29 Janvier 2020
comment récupérer mon positionnement Problèmes de référencement spécifiques à vos sites 5 Janvier 2020
Attendre des années avant de récupérer l'argent amassé sur adsense AdSense 23 Novembre 2019
Comment récupérer variable dynamique pour GTM ? Google Analytics 30 Septembre 2019