select count(playerId) from log_login where week(loginTime)=week(NOW()) and week(loginTime)=week(NOW())-2;
这一条sql有错么?
我是查询在前两个星期登录的人,在本星期也登录了的人数。
loginTime是登录的时间,我看了的明明有这样的数据。但是查出来之后是0.
别让我贴数据库结构,太多。就看这条sql有没有错。
我该怎么改啊?MySQLSQL数据库行业数据

解决方案 »

  1.   

    目测log_login表是,用户每登入一次就留下一条记录。select count(playerId) 
    from (select playerId,loginTime from log_login where week(loginTime)=week(NOW())) b 
    where week(loginTime)=week(NOW())-2;那得先找出本周登入过的人,从里面再找出两周前也登入过的。
      

  2.   


       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
      

  3.   

    select count(playerId) from log_login where playerId in (select distinct playerId from log_login where week(loginTime)=week(NOW())) and week(loginTime)=week(NOW())-2;