phpMyAdmin
 sql >> Base de données >  >> Database Tools >> phpMyAdmin

comment sélectionner les 5 dernières lignes de mon mysql

Vous devez ordonner les résultats et définir une limite.

En supposant que la date et l'heure correspondent à la date à laquelle vous vouliez commander :

$query = "
    SELECT 
        lat, 
        lng, 
        DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS datetime 
    FROM markers1 WHERE 1
    ORDER BY datetime DESC
    LIMIT 5
";

MODIF : Pour répondre au commentaire d'OP:"le résultat que j'obtiens est le début de la ligne 50 pour la première requête et il suit par 49,48,47,46 Est-ce possible que je puisse obtenir ce début à partir de la ligne 46,47,48,49,50?"

Vous pouvez soit le faire avec le résultat en PHP, en récupérant les lignes et en les stockant dans un tableau et en inversant le tableau. Je ne crois pas que vous puissiez parcourir efficacement une ressource de résultat mysql en sens inverse.

Pour ce faire dans la requête SQL, vous devez créer une table temporaire avec la requête d'origine :

$query = "
    SELECT 
        lat,
        lng,
        DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS datetime 
    FROM (
        SELECT 
            lat, 
            lng, 
            datetime
        FROM markers1 WHERE 1
        ORDER BY datetime DESC
        LIMIT 5
    ) AS tmp_markers
    ORDER BY datetime ASC
";

Le résultat de la requête initiale est utilisé comme table pour effectuer une recherche dans une nouvelle requête, qui est triée par date/heure en ordre croissant. J'ai dû appliquer le DATE_FORMAT sur la requête externe car nous avons besoin du champ datetime pour commander à nouveau.