mysql limit 和 order by 同时使用时丢失数据问题记录:
SELECT id
,mode
,target_id
,fee
,begin_time
,end_time
FROM pft_module_price WHERE type
= 1 ORDER BY rank DESC LIMIT 0,10
SELECT id
,mode
,target_id
,fee
,begin_time
,end_time
FROM pft_module_price WHERE type
= 1 ORDER BY rank DESC LIMIT 10,10
两条sql执行时,两次的运行结果中会出现一些重复数据和丢失一些数据。猜测是rank值都一样的情况下,两次排序是不一样的,导致两次取得值会出现重复和丢失。
SELECT id
,mode
,target_id
,fee
,begin_time
,end_time
FROM pft_module_price WHERE type
= 1 ORDER BY rank,id DESC LIMIT 0,10
order by 的时候多加个 id,结果正常。