select distinct id from Out where isTrue='N' order by id
由于out表数据量大 达到300万
执行这条语句可以得到10万数据
所以这个语句不是很快 (mysql对distinct支持不是很好的)所以我准备用group by替换, 发生产生很多的问题
select id  from  Out where isTrue='N' group by id
having count(*)>=2 
发现不能得到任何数据不知道错误在什么地方

解决方案 »

  1.   

    select id  from  Out where isTrue='N' group by id
    having count(*)>=2 错误提示是什么?
      

  2.   

    select id  from  Out where isTrue='N' group by id 
    having count(*)>=2     没有错误 只是显示结果为空
    我刚才测试select id  from  Out group by id 
    having count(*)>=2     ----是有数据的   好奇怪的问题???
    ----我会谨记ACMAIN_CHM教诲,不忘结贴,再不要出现这个,不好。
      

  3.   

    这个问题产生的原因找到
    select id  from  Out where isTrue='N' group by id
    这里多加了字段 isTrue select id,isTrue  from  Out where isTrue='N' group by id,isTrue
    having count(*)>=2  
    但是不幸 结果还是为空  没招了
      

  4.   

    select id,isTrue  from  Out where isTrue='N' 有结果吗?
      

  5.   

    having count(*)>=2
    也许就没有符合条件的记录啊
      

  6.   

    elect id,isTrue  from  Out where isTrue='N'----有结果
    having count(*)>=2 ---有的请注意select distinct id from Out where isTrue='N' order by id 
    这条语句是有10万记录的哦为什么不能换语句啦?
      

  7.   

    重新测试
    select id  from  Out group by id 
    having count(*)>=2  -----------------出数据啦select id  from  Out where isTrue='N' group by id 
    having count(*)>=2  ---为空原因确定不能加上限制条件isTrue='N'
      

  8.   

    换写法 
    select id from
    (select id  from  Out where isTrue='N') a
    group by id,isTrue 
    having count(*)>=2  还是不能得到结果 ????   这就说不通了
      

  9.   

    原因很简单!因为  isTrue='N' 的ID都没有重复的了。select id  from  Out where isTrue='N'
      

  10.   

    对的哦  回复 ACMAIN_CHM
     select distinct id from Out where isTrue='N' order by id 
    =select id  from  Out where isTrue='N' group by id 
      

  11.   

    select distinct id from Out where isTrue='N' order by id
    select id  from  Out where isTrue='N' group by id 
    having count(*)>=2 ---------------------------
    2个查询的条件都不一样了(第1个只是过滤id使其唯一显示;第2个只显示有重复记录的id值),肯定显示结果也可能不同的咯