需要一些统计,在同一个表,但是条件不同如下:$count_vip = $_SGLOBAL['db']->query("SELECT id FROM oa_guest WHERE vip = 0 ");
$count = $_SGLOBAL['db']->num_rows($count_vip);这样统计了一下非VIP的数字
然后又需要统计某个时间段的"SELECT id FROM oa_guest WHERE time > 时间戳  and time < 时间戳"
然后又需要其他类型 "SELECT count(id) FROM oa_guest group by classid"
又来个
"SELECT id FROM oa_guest WHERE rank = 'A'";
"SELECT id FROM oa_guest WHERE rank = 'B'";
"SELECT id FROM oa_guest WHERE rank = 'C'";
"SELECT id FROM oa_guest WHERE rank = 'D'";等等,需要统计这个表的东西有数十个有没有什么方法,能用少量的语句来一下根据不同条件统计出来?
我现在都是一个提交一个语句,光这个表都N十条语句求教

解决方案 »

  1.   

    SELECT id,Rank From oa_guest WHERE rank in ('A','B','C','D')
      

  2.   

    目的不同,SQL语句也不同 
    可以用字符串累计生成SQL语句的方法来执行不同的SQL语句
      

  3.   

    没条命令的目的都不一样,写法肯定也不一样了。
    "SELECT id FROM oa_guest WHERE rank = 'A'";
    "SELECT id FROM oa_guest WHERE rank = 'B'";
    "SELECT id FROM oa_guest WHERE rank = 'C'";
    "SELECT id FROM oa_guest WHERE rank = 'D'";
    这4条你是要得到一个记录集还是4个记录集?
    如果是一个的话,可以用IN(),如果是4个,那就必须分开写了。
      

  4.   


    每条语句都要统计各自的数量$count = $_SGLOBAL['db']->num_rows($count_vip);
      

  5.   

    每条语句都要统计各自的数量
    select id,sum(if(rank = 'A',1,0)),sum(if(rank = 'b',1,0)),sum(if(rank = 'c',1,0)),sum(if(rank = 'd',1,0)) from tt group by id
      

  6.   

     (不要高估你的汉语表达能力或者我的汉语理解能力)
       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式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)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。