问答详情
源自:3-1 如何实现分组选择数据

关于修改表中数据后查询出不符合预期结果的尝试

老师,问您个问题: 

在执行“select * from user_kills;”得到的表中全部数据那一块,当把id为8的那条数据的user_id改为2时,即猪八戒有在两个不同的日期杀敌都有10个的记录,那么通过您那条语句查询出来的结果就不是6条数据(每个徒弟都有两条记录),而是猪八戒只有一条记录,而其余正常,请问这个作何解释呢?

 这个也是我偶然发现的,因为网站上没有贴出表中用例数据,所以先期是自己胡乱建的数据,视频到后期才通过你的查询看到完整的数据。

提问者:静美书斋 2017-05-25 16:33

个回答

  • Henry_Liu
    2020-01-10 08:09:40

    放到代码里面去筛选呗

  • 亜門
    2017-11-06 08:59:14

    恩,我的也是同样情况。有没有最佳的方法去解决?

  • wlwzobc
    2017-06-12 21:10:31

    点赞,确实是,偶然发现,那就是问题了,确实是没有考虑完全。(select count(*) from user_kill b where b.user_id = a.user_id and a.kills <= b.kills ) cnt,这个语句是达不到排序目的的,正如你说,猪八戒有12、10、10 这种记录时,针对12,排出结果是1,最对第一个、第二个10,排出的结果都是3,后面条件 where cnt <= 2 直接把两条10的记录过滤掉了。