sql >> Database teknologi >  >> Database Tools >> phpMyAdmin

hvordan man vælger de 5 seneste række fra min mysql

Du skal bestille resultaterne og sætte en grænse.

Forudsat at dato og klokkeslæt er det, du ønskede at bestille 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: For at besvare OP's kommentar:"resultatet, jeg får, er start for række 50 for første forespørgsel, og det efterfølges af 49,48,47,46. Er det muligt, at jeg kan få denne start fra række 46,47,48,49,50?"

Du kan enten gøre dette med resultatet i PHP ved at hente rækkerne og gemme dem i et array og vende arrayet. Jeg tror ikke, du effektivt kan sløjfe en mysql-ressource omvendt.

For at gøre dette i SQL-forespørgslen skal du oprette en midlertidig tabel med den oprindelige forespørgsel:

$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 af den indledende forespørgsel bruges som tabel til at søge i en ny forespørgsel, der sorterer efter dato og klokkeslæt stigende. Jeg var nødt til at anvende DATE_FORMAT på den ydre forespørgsel, fordi vi har brug for feltet dato og klokkeslæt for at bestille inden igen.



  1. Hvordan kan jeg løse tabellen 'dbo.Foo' eksisterer allerede. fejl, når tabellen ikke eksisterer?

  2. Ønsker du at gendanne data til kontaktformular 7, wordpress

  3. Importerer .sql til MS Access ved hjælp af OBDC

  4. Sådan bruger du phpMyAdmin til at optimere en database