2012-02-24 28 views
9

¿Cuál es la mejor y más fácil forma de hacerlo? Mi consulta es actualmente:MYSQL Seleccionar de la tabla, obtener las últimas/últimas 10 filas en la tabla

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

Esta muestra las primeras 10 filas, sin embargo, no será el último 10.

EDIT: Quiero los últimos 10 filas (¿Qué sí, DESC hace esto) Sin embargo yo los quiero ser devuelto en orden ASCENDENTE.

+0

Utilice la opción ** ordenar ** en la base de datos. – user631756

Respuesta

20

para invertir el orden (por lo tanto, obtener la última 10 en lugar del primero 10), utilice DESC en lugar de ASC

EDITAR

Basado en su comentario:

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

Olvidé incluir en mi pregunta, quiero las últimas 10 filas (sí, usando DESC), pero en orden Asc. –

+0

Gracias funciona bien –

+0

Sé que esta es una publicación anterior, pero esto es justo lo que estaba buscando. Gracias :) –

1

Si quieren los últimos 10 luego simplemente cambie ASC a DESC

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

Vaya, se me olvidó incluir en mi pregunta, los últimos 10 (que sí se puede hacer con DESC, pero en orden 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"; 

En primer lugar he puesto el límite

$limit = 10; 

número total luego

$gt_total_rows = mysql_num_rows($gt_res_query); 

Aquí he tomado de filas afectadas.

$start = $gt_total_rows-$limit; 

luego restó límite a partir del número de filas para tomar a partir número récord

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

y luego se añadieron límite a la consulta. Para obtener más información sobre el límite, consulte este enlace https://www.w3schools.com/php/php_mysql_select_limit.asp

+0

Los volcados de código sin explicación rara vez son útiles. Añada contexto para su respuesta – Chris

+0

Esto podría ser un problema si tiene un filtro. Algunos datos podrían ser ignorados. – Asuquo12

+0

@Chris ¿Está bien ...? He agregado una pequeña explicación a la respuesta – mohitesachin217

Cuestiones relacionadas