2011-06-22 26 views
5

Veritabanımın son 10 sonucunu almak için aşağıdaki sorguyu kullanıyorum, ancak bunların azalan sırada olmamasına ihtiyacım var. Bunu sorgu ile başarabilir miyim yoksa php'de halletmem gerekiyor mu? Yardım ettiğin için teşekkür ederim.Sorguyu tersine çevirme

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

cevap

4

çalışması gerekir

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

SELECT * id ORDER BY (id DESC LIMIT 0,10 BY MSG SİPARİŞ * SEÇ) - senin sorununu çözmek için aşağıdaki deneyin

3

Zaten orada bulunan mysql cevapları dışında, orijinal sonuç kümenizde bir php çözümü array_reverse() kullanmak olacaktır.

1

Yuvalanmış bir sorgu kullanıldığında tek yanıt, iç içe geçmiş veya alt sorgudan iki sorgu yürütmenin daha uygun olduğuna inanıyorum. Yükü azaltır - yanılıyorsam beni düzeltin.

Ben öneririm:

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

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

(tabii ki!) Varsayarsak get_results() özel bir fonksiyon sorguyu çalıştırır ve tablodan veri döndürme olduğunu.

İlgili konular