功能示例,新闻模块,用A创建1条数据,用B创建12条数据,因为是按时间排序,A的数据时间最早,排在最后。登录A账号,发现没有数据,列表下方显示共1条。
img[//cdn.renren.io/8ad52202110221000368512.png]
查看后台发现,查询条数使用的sql是 SELECT COUNT(*) FROM tb_news WHERE 1 = 1 AND (creator=1426107718444933122) ;查询出1条。
查分页使用的sql是 SELECT * FROM (SELECT TMP.*, ROWNUM ROW_ID FROM (SELECT * FROM tb_news WHERE 1 = 1 ORDER BY create_date DESC) TMP WHERE ROWNUM <= 10) WHERE ROW_ID > 0 AND (creator=1426107718444933122) ;查询出0条。
是因为,creator条件,不应该放在最外层,应该放在里面。
如果放在外面,是先查出日期靠前的10条,再查creator,这样就导致查不出自己创建的时间靠后的数据。