2012-02-24 15 views
9

Qual è il modo migliore e più semplice per farlo? La mia domanda è attualmente:MYSQL Seleziona dalla tabella, ottieni le ultime/ultime 10 righe nella tabella

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

Questo mostra le prime 10 righe, però, non l'ultimo 10.

EDIT: I Want le ultime 10 righe (che sì, DESC fa questo) però li voglio essere restituito in ordine ASCENDENTE.

+0

Utilizzare l'opzione ** sort ** nel database. – user631756

risposta

20

per invertire l'ordine (quindi ottenere lo scorso 10 invece di prima 10), utilizzare DESC invece di ASC

EDIT

In base al tuo commento:

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

Ho dimenticato di includere nella mia domanda, voglio le ultime 10 righe (sì usando DESC), ma in ordine Asc. –

+0

Grazie funziona bene –

+0

So che questo è un vecchio post, ma questo è proprio quello che stavo cercando. Grazie :) –

1

Se si desidera gli ultimi 10 poi cambiano semplicemente ASC in DESC

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

Oops, ho dimenticato di includere nella mia domanda l'ultimo 10 (che si può fare con DESC, ma in ordine 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"; 

Prima ho impostato il limite

$limit = 10; 

numero totale quindi

$gt_total_rows = mysql_num_rows($gt_res_query); 

Qui ho preso di righe interessate.

$start = $gt_total_rows-$limit; 

quindi sottratto dal limite numero di righe da prendere partendo registrare numero

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

e poi aggiunti limite alla interrogazione. Per ulteriori informazioni sul limite, vedere questo collegamento https://www.w3schools.com/php/php_mysql_select_limit.asp

+0

I dump di codice senza spiegazione sono raramente utili. un po 'di contesto alla tua risposta – Chris

+0

Questo potrebbe essere un problema se hai un filtro, alcuni dati potrebbero essere ignorati – Asuquo12

+0

@Chris Va bene ...? Ho aggiunto poche spiegazioni alla risposta – mohitesachin217

Problemi correlati