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

hoe de 5 laatste rij van mijn mysql te selecteren

U moet de resultaten bestellen en een limiet instellen.

Ervan uitgaande dat datetime is wat je wilde bestellen op:

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

BEWERKEN: Om de opmerking van OP te beantwoorden:"het resultaat dat ik krijg is start voor rij 50 voor de eerste zoekopdracht en het volgt 49,48,47,46. Is het mogelijk dat ik deze start krijg van rij 46,47,48,49,50?"

Je zou dit kunnen doen met het resultaat in PHP, door de rijen op te halen en op te slaan in een array en de array om te keren. Ik geloof niet dat je efficiënt in omgekeerde volgorde door een mysql-resultaatbron kunt bladeren.

Om dit in de SQL-query te doen, moet u een tijdelijke tabel maken met de originele query:

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

Het resultaat van de eerste zoekopdracht wordt gebruikt als de tabel om in een nieuwe zoekopdracht te zoeken, die gesorteerd is op datum/tijd oplopend. Ik moest de DATE_FORMAT toepassen op de buitenste query omdat we het datetime-veld nodig hebben om opnieuw te bestellen.



  1. SQL-server. Hoe de intellisense opfrissen?

  2. mySQL-query om alle tabellen in een database te doorzoeken op een string?

  3. Fatale fout:maximale uitvoeringstijd van 30 seconden overschreden wanneer ik de dagelijkse run vanaf mijn website uitvoer

  4. phpMyAdmin Kan configuratie niet laden of opslaan