2012-02-24 14 views
9

Jaki jest najlepszy i najłatwiejszy sposób na zrobienie tego? Moja kwerenda aktualnie jest:MYSQL Wybierz z tabeli, pobierz najnowsze/ostatnie 10 wierszy w tabeli

SELECT * 
    FROM chat 
    WHERE (userID = $session AND toID = $friendID) 
     OR (userID = $friendID AND toID = $session) 
ORDER BY id 
    LIMIT 10 

To pokazuje pierwsze 10 wierszy, choć nie ostatni 10.

EDIT: I Want ostatnie 10 wierszy (który tak robi to DESC) Jednakże chcę je być zwrócone w porządku ASCENDING.

+0

Użyj opcji ** sort ** w bazie danych. – user631756

Odpowiedz

20

aby odwrócić kolejność (a więc dostać ostatni 10 zamiast pierwszego 10), użyj DESC zamiast ASC

EDIT

oparciu o swój komentarz:

SELECT * FROM (
    SELECT * 
    FROM chat 
    WHERE (userID = $session AND toID = $friendID) 
    OR (userID = $friendID AND toID = $session) 
    ORDER BY id DESC 
    LIMIT 10 
) AS `table` ORDER by id ASC 
+1

Zapomniałem uwzględnić w moim pytaniu, chcę ostatnich 10 wierszy (tak przy użyciu DESC), ale w kolejności Asc. –

+0

Dzięki pięknie działa –

+0

Wiem, że to stary post, ale tego właśnie szukałem. Dzięki :) –

1

jeśli chcesz ostatnie 10 to po prostu zmień ASC na DESC

SELECT * 
FROM 
chat 
WHERE 
(userID=$session AND toID=$friendID) 
OR 
(userID=$friendID AND toID=$session) 
ORDER BY id 
DESC 
LIMIT 10 
+0

Ups, zapomniałem uwzględnić w moim pytaniu, ostatnie 10 (które tak można zrobić z DESC, ale w poleceniu ASC.) –

0
$limit = 10;     
$gt_query= "SELECT * FROM $table "; 
       $gt_res_query = mysql_query($gt_query,$this->gt_con_puneri) or die(mysql_error()); 
       $gt_total_rows = mysql_num_rows($gt_res_query); 
       $start = $gt_total_rows-$limit; 
       $gt_query_limit= $gt_query." LIMIT $start,$limit"; 

najpierw muszę ustawić limit

$limit = 10; 

następnie

$gt_total_rows = mysql_num_rows($gt_res_query); 

Tutaj Brałem całkowitą liczbę wierszy.

$start = $gt_total_rows-$limit; 

następnie odejmowana od limitu liczby wierszy się począwszy od rekordu

$gt_query_limit= $gt_query." LIMIT $start,$limit"; 

i dodano ograniczenia do zapytania. Aby uzyskać więcej informacji na temat limitu, zobacz ten link https://www.w3schools.com/php/php_mysql_select_limit.asp

+0

Zrzuty kodów bez wyjaśnienia rzadko są pomocne. Kontekst do twojej odpowiedzi – Chris

+0

Może to być problem, jeśli masz filtr Niektóre dane mogą być ignorowane – Asuquo12

+0

@Chris Czy to w porządku ...? Dodałem trochę wyjaśnień do odpowiedzi – mohitesachin217

Powiązane problemy