表a
字段b
里面的值:1,1,2,2,3,4,5,6,6,7,7后面还有值。
如何使用select查出想要的效果
想要的效果:1,1,2,2,6,6,7,7
求高手指点语句

解决方案 »

  1.   

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

  2.   

    create table test
    (
    name varchar(20)
    )
    insert into test select 'a'
    insert into test select 'a'
    insert into test select 'b'
    insert into test select 'b'
    insert into test select 'c'
    insert into test select 'd'
    insert into test select 'e'
    insert into test select 'e'
    insert into test select 'f'
    insert into test select 'g'
    insert into test select 'g'
    insert into test select 'h'/*
    要得到这样的效果:
    name
    a
    a
    b
    b
    e
    e
    g
    g
    */
    drop table test
      

  3.   

    mysql> select * from test;
    +------+
    | name |
    +------+
    | a    |
    | a    |
    | b    |
    | b    |
    | c    |
    | d    |
    | e    |
    | e    |
    | f    |
    | g    |
    | g    |
    | h    |
    +------+
    12 rows in set (0.03 sec)mysql> select name
        -> from test a
        -> where 2=(select count(*) from test where name=a.name);
    +------+
    | name |
    +------+
    | a    |
    | a    |
    | b    |
    | b    |
    | e    |
    | e    |
    | g    |
    | g    |
    +------+
    8 rows in set (0.09 sec)mysql>
      

  4.   

    select name from test where name 
    in(SELECT name FROM test group by name having count(name)=2)