Nasıl MySQL/önceki kayıt sonraki almak için?
Kimlikleri 3,4,7,9 ile kayıtları var ve önceki/sonraki bağlantılar üzerinden navitagion tarafından diğerine gitmek mümkün olmak istiyorum söylüyorlar. Sorun yüksek KİMLİĞİ ile en yakın kayıt almak için nasıl bilmiyorum.
Kaydı aldığımda KİMLİĞİ ile 4, almak mümkün olmak istiyorum 7 olurdu kaydı mevcut gelecek. Sorgu muhtemelen gibi bir şey olacaktır
SELECT * FROM foo WHERE id = 4 OFFSET 1
Nasıl tüm sonuç kümesi yineleme ve elle alma olmadan bir sonraki/önceki rekor getirebilir miyim?
MySQL 5 kullanıyorum.
CEVAP
cemkalyoncu's ek olarak çözüm:
sonraki kayıt:
SELECT * FROM foo WHERE id > 4 ORDER BY id LIMIT 1;
önceki rekor:
SELECT * FROM foo WHERE id < 4 ORDER BY id DESC LIMIT 1;
düzenleme:Beri bu cevap oldu bir kaç upvotes son zamanlarda gerçekten istediğim için stres comment I made Daha önce anlayışlı bir birincil anahtar colum değil demek gibi bir sütuna göre sıralamak, çünkü MySQL garanti etmez yüksek, otomatik artan değerler vardır mutlaka eklenen daha sonraki bir zamanda.
Bu umurunda değil, sadece (veya daha düşük) id daha yüksek bir kayıtla lazım o zaman bu yeterli olacaktır. Sadece bir kayıt gerçekten sonraki (veya önceki) eklenmiş olup olmadığını belirlemek için bir araç olarak kullanmayın. Yerine, örneğin sıralamak için bir datetime sütun kullanmayı düşünün.

Nasıl MySQL kullanıcı hesaplarının bir...
Nasıl bir mysql veritabanı tablo boyut...
Nasıl MySQL iki değer max almak için?...
nasıl mysql veritabanında tek bir tabl...
Nasıl mysql veritabanı boyutu almak iç...