sql >> Databasteknik >  >> Database Tools >> phpMyAdmin

hur man väljer de 5 senaste raden från min mysql

Du måste beställa resultaten och sätta en gräns.

Förutsatt att datetime är vad du ville beställa på:

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

EDIT: För att svara på OP:s kommentar:"resultatet som jag får är start för rad 50 för första frågan och den följs av 49,48,47,46. Är det möjligt att jag kan få denna start från rad 46,47,48,49,50?"

Du kan antingen göra detta med resultatet i PHP, genom att hämta raderna och lagra dem i en array och vända arrayen. Jag tror inte att du effektivt kan gå igenom en resurs för mysql-resultat omvänt.

För att göra detta i SQL-frågan måste du skapa en tillfällig tabell med den ursprungliga frågan:

$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
";

Resultatet av den initiala frågan används som tabell för att söka i en ny fråga, som sorterar efter datum och tid stigande. Jag var tvungen att använda DATE_FORMAT på den yttre frågan eftersom vi behöver fältet datetime för att beställa efter igen.



  1. phpmyadmin fel 13 tillstånd nekad

  2. phpmyadmin|Hur man skapar en händelse gör två åtgärder

  3. docker-compose:mariadb - Anslutning nekad

  4. Det går inte att redigera config.inc.php