yinelenen tarihleri ​​tarihe göre sipariş ve izin verirken MySQL önceki ve sonraki kayıt alma

0 Cevap php

Ben bu sorun için başka bir yardım bakarak denedim ama ben sadece almıyorum. Ben aşağıdaki gibi görünen bir tablo olduğunu varsayalım.

+----+--------------+------------+
| id | date_col     | label      |
+----+--------------+------------+
| 1  | 2010-09-07   | Record 1   |
| 2  | 2010-09-03   | Record 2   |
| 3  | 2010-08-23   | Record 3   |
| 4  | 2010-08-23   | Record 4   |
| 5  | 2010-08-23   | Record 5   |
| 6  | 2010-08-12   | Record 6   |
| 7  | 2010-08-06   | Record 7   |
| 8  | 2010-08-06   | Record 8   |
| 9  | 2010-08-02   | Record 9   |
| 10 | 2010-08-01   | Record 10  |
+----+--------------+------------+

Sorgulandığında, date_col göre bu kayıtları sipariş ve yinelenen tarihleri ​​ile sipariş yardım için id (ya da gerçekten başka bir keyfi sütun) kullanın.

mysql_query("SELECT * FROM table ORDER BY date_col DESC, id DESC");

Ben bir anda only one bu kayıtların sorgu Ancak, ben bir sonraki veya bir önceki kayda gitmek için bir önceki ve bir sonraki düğmeye istiyorum. Benim sorunum date_col yinelenen değerlere izin verir ve sırayla sonraki kaydı belirlerken bu yüzden, örneğin, aşağıdaki sorgu benim için çalışmıyor olmasıdır. (this_date date_col değerdir ve this_id biz de arıyoruz geçerli kayıt için id değeri olduğunu varsayalım)

mysql_query("SELECT id FROM table WHERE date_col > this_date ORDER BY date_col DESC, id DESC LIMIT 1");

Hatta bu benim için işe yaramaz:

mysql_query("SELECT id FROM table WHERE date_col > this_date AND NOT id=this_id ORDER BY date_col DESC, id DESC LIMIT 1");

Peki ben gidiyorum böyle bir şeydir - onun date_col DESC id DESC tarafından sipariş edilen beri ben, id # 4 ile rekor bakıyorum ise önceki rekor id # 5 ve sonraki kayıt olmalı id # 3 olmalı, ama tüm bu sonuçları alamıyorum.

Birisi düzgün bu işi yapmak için nasıl açıklayabilir? Herhangi bir yardım çok takdir.

0 Cevap