select * from Table where id in ('1000','1001');
or 
select * from Table where id in (1000,1001);还是
select * from Table where id <= '1001' and id >= '1000';
or 
select * from Table where id <= 1001 and id >= 1000;不明白楼主什么意思???

解决方案 »

  1.   

    呵呵,我的意思是如果name字段中有相同的值就只取其中的一条纪录
      

  2.   

    刚才用
    select distinct name,id,address from mytable
    发现不可以阿
      

  3.   

    结果我采用了
    select max(name),max(id),max(address) from mytable group by name
    好像可以,但是不知道对不对?
      

  4.   

    楼主思想有问题
    如果name字段中有相同的值就只取其中的一条纪录那为啥不返回这俩呢?
    1002   tom     none
    1003   cate    none
    应该还有条件吧??
      

  5.   

    select a.id a.name a.address from table a,table b
    where not exist(select  b.id where b.id<a.id);
    好像就是类似这样的东西,手头没有书,也不知道对不对。
      

  6.   

    to  relive(六道轮回,无想转生) 
    随便返回哪两个都可以,条件就是name字段的内容要不相同
      

  7.   

    to  outlier(阿黑哥), relive(六道轮回,无想转生) 
       谢谢你们的恢复,我发现用
       select max(name),max(id),max(address) from mytable group by name
    好像是可以的。
      

  8.   

    name相同的时候,address会相同吗?你真正的目的是什么?我觉得可能你的设计是不是有问题?
      

  9.   

    to 楼上
       我仅仅是举个例子而已,其实address可能相同也可能不同,我不管这些总之只要name相同我就只取其中的任何一条纪录。
      

  10.   

    study_body(珍惜每一天)
    select max(name),max(id),max(address) from mytable group by name
    是错的,它返回的不是一条完整的记录。
    随便返回哪两个都可以的话SELECT id, name, address
    FROM mytable A
    WHERE (NOT EXISTS
              (SELECT id
             FROM mytable B
             WHERE A.name = B.name AND A.id < B.id))如果你的id字段不会重复的话。
      

  11.   

    select * from mytable where id in (select min(id) from mytable group by name)
      

  12.   

    噢,我明白了,原来是这样,唉Sql语句学的太烂。
      

  13.   

    to bsd(小红帽菜鸟)  
       偶结帐太早,唉,以后有问题请捧场,一定给分,非常抱歉