需求是,用户第一次进来去领取券码页面,随机给用户三条数据,然后显示。之后第二次进来,直接根据用户的openid查是否有数据,若有直接到显示页面查看,么有的话去领取。
测试的时候发现,第一次领取之后显示的页面数据顺序和之后N次登陆进来看到的数据顺序不一样。
后来仔细想想,也对,第一次显示的数据是随机抽取的。(券码数据是之前导入进来的,创建时间是入库券码数据的时候,给用户数据的时候只是把用户某些标示信息更新到数据里)
第二次显示就是普通的条件查询 然后显示。
然后想说 更新用户信息的时候 修改入库时间 ~ 可是也行不通。因为每个用户给多条数据,修改的多条入库时间都是一样的。 然后pass~!
这是我之前的取数据语句
select top 5 * from table where open_id=' ' order by newid()
然后改成这样 想说能不能再根据id排序一下 结果不管用~ 因为order by已经有newid()了
select top 5 * from table where open_id=' ' order by newid(),id
select * from (
select top 3 * from table where open_id=' ' order by newid()
) as temp order by temp.id
完美解决~
还有一个问题~
如果对象封装成为xml文件的话,