Récupérer le premier et dernier enregistrement sql

WRInaute impliqué
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
 
WRInaute passionné
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...
 
Dernière édition:
WRInaute discret
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
 
WRInaute passionné
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...
 
WRInaute accro
$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];
 
Discussions similaires
Haut