MySQL SQL tablodaki en son kayıtları almak?

2 Cevap php

Bir tabloda en son girdileri almak için çalışırken aşağıdaki gibi bir sql deyimi var. Ben iki soru var:

  1. O id veya tarihe göre sipariş için daha iyi mi?

  2. Nasıl tarihe göre yeniden sipariş için bu sql deyimi yeniden mi?

    SELECT id, comment, DATE_FORMAT(entry_date, '%W %H:%i') FROM comments ORDER BY id DESC LIMIT 10
    

2 Cevap

Size En son tarafından ne anlama bağlıdır:

Eğer en son oluşturulan kayıt demek, o (çoğu durumda) birincil anahtar kimliği ile çalışacaktır.

Eğer en son güncellenen kayıt demek, o kesinlikle tarihe göre.

Tarihe göre sıralamak için sadece alan adını değiştirin: ORDER BY entry_date DESC

Eğer yeni satırlar için sıralamak için% 100 kesin olarak varsa, tarih alanını kullanmanız gerekir. Eğer yeni için sıralamak istediğiniz zaman zaman alan için sıralama hemen hemen mantıklı ve endeksli eğer tarihlerde sıralama id-s sıralamak daha aynı zaman alacak.

Id alanı için değerler sadece onlar ekleme zaman sipariş sağlamak için hiçbir yolu muhtemelen orada olduğunu varsaymak benzersiz olması garanti edilir. Örneğin id alanı (6,7,8, -7, -6 ...) bir döngüsel alanı olabilir, ya da masa üzerinde daha sonra değişiklik id alanlarını değiştirmek için izin verilir, ancak kendi sıralamasını korumak için bilemezsiniz yerleştirme zamanı, ya da paralel işlem kimliği ve tarih alanları üzerinde farklı bir düzende yeni bir satır eklemek için karar verebilirsiniz.