id    name
1     e1
2     e2
3     e3
4     e1_1
5     e1_2
6     e1_1_1
7     e1_1_2
8     e1_1_1_1
9     e1_1_3
10    e2_1要求查询结果1     e1
4     e1_1
5     e1_2就查出2层子类....

解决方案 »

  1.   

    select * from yourTable where name like 'e1%';
    建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
    当您的问题得到解答后请及时结贴.
    http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html
      

  2.   


    SELECT * FROM tablename WHERE CHAR_LENGTH(name)-CHAR_LENGTH(REPLACE(name,'_',''))<2
    AND left(name,2)='e1'
    ORDER BY name,id;
      

  3.   

    mysql> select * from t_wang_830608500;
    +------+----------+
    | id   | name     |
    +------+----------+
    |    1 | e1       |
    |    2 | e2       |
    |    3 | e3       |
    |    4 | e1_1     |
    |    5 | e1_2     |
    |    6 | e1_1_1   |
    |    7 | e1_1_2   |
    |    8 | e1_1_1_1 |
    |    9 | e1_1_3   |
    |   10 | e2_1     |
    +------+----------+
    10 rows in set (0.06 sec)mysql> select * from t_wang_830608500
        -> where name regexp '^e1_?[0-9]*$';
    +------+------+
    | id   | name |
    +------+------+
    |    1 | e1   |
    |    4 | e1_1 |
    |    5 | e1_2 |
    +------+------+
    3 rows in set (0.00 sec)mysql>
      

  4.   


    SELECT * FROM reg_1 r WHERE name like 'e1%' AND name=SUBSTRING_INDEX(name,'_',2);