2011-06-22 12 views
5

Korzystam z następującego zapytania, aby pobrać 10 ostatnich wyników z mojej bazy danych, ale nie potrzebuję ich w kolejności malejącej. Czy mimo to mogę to zrobić za pomocą zapytania lub czy potrzebuję go obsłużyć w php? Dzięki za pomoc.Anulowanie wyniku kwerendy

SELECT * FROM MSG ORDER BY id DESC LIMIT 0,10 

Odpowiedz

4

Spróbuj wykonać następujące czynności, aby rozwiązać swój problem

SELECT * FROM (SELECT * FROM MSG ORDER BY id DESC LIMIT 10) AS RequiredLimit ORDER BY id ASC 
4

SELECT * FROM (SELECT * FROM MSG ORDER BY id DESC LIMIT 0,10) ORDER BY id - powinny działać

3

Oprócz odpowiedzi mysql, które już tam są, rozwiązaniem php będzie użycie array_reverse() w oryginalnym zestawie wyników.

1

Podczas korzystania z zagnieżdżonego zapytania jest jedną z odpowiedzi, uważam, że bardziej optymalne jest wykonanie dwóch zapytań niż zagnieżdżone lub pod-zapytanie. Zmniejsza obciążenie - popraw mnie, jeśli się mylę.

sugeruję:

$row_offset = get_result("SELECT COUNT(*) FROM MSG;") - 10; 

$rows = get_result("SELECT * FROM MSG LIMIT " . $row_offset . ", 10;"); 

Zakładając (oczywiście!), Że get_results() jest funkcją zwyczaj wykonywania kwerendy i powrocie dane z tabeli.

Powiązane problemy