Mysql 按TimeStamp排序bug


當數據庫中多條記錄插入timestamp相同時,而恰好sql中是按照此字段排序,則取出的數據可能會有遺漏。

例如:

SQL 1:

select * from money_record where user_id=85 and create_time>"2005-10-10" and create_time<="2015-10-09" order by record_id desc limit 0,5;

結果如下:

 

SQL 2:

select * from money_record where user_id=85 and create_time>"2005-10-10" and create_time<="2015-10-09" order by record_id desc limit 0,6;

結果如下:

 

可以發現記錄順序發生改變。

實際上如果這里有翻頁的話,有可能會發生記錄丟失的情況。

如圖:

第一頁SQL:

select * from money_record where user_id=85 and create_time>"2005-10-10" and create_time<="2015-10-09" order by record_id desc limit 0,5;

結果:

第二頁SQL:

select * from money_record where user_id=85 and create_time>"2005-10-10" and create_time<="2015-10-09" order by create_time desc limit 5,5;

結果:

 

可以發現第二頁的時候數據展示是有問題的。

 

推測mysql按timestamp類型字段排序的SQL,如果表中兩條記錄timestamp恰好相同,而分頁時前一頁兩條記錄恰好只能有一條,當展示第二頁時,(第二頁)首條記錄則可能仍是第一頁的最后一條記錄。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM