我现在在做一个这样的东西,有一个数据表userinfo,里面有对应的关键字段username来存储用户的姓名的,然后我做的网页页面可以通过读取一共有多少个姓氏就建立起多少张标签,然后点每一张标签的时候,和他同姓的人都放在一起,
然后我现在第一个棒定的记录集合采用的是 SELECT DISTINCT LEFT(name,1)  FROM userinfor 确实可以把 里面的所有的姓氏都查出来 ,这一步确实成功了。然后再接下来的时候就碰到了麻烦,就是说我要把所有相同的姓氏的人放在一起,我的思想是基于前一个基础上,再次查询, 我用的是SELECT username  FROM userinfor  WHERE name LIKE '(SELECT DISTINCT LEFT(name,1) AS bear  FROM userinfor)%' 但是到这里就失败了,记录集总是空的
如果我改成SELECT username  FROM userinfor  WHERE name LIKE '张%>就能查到,但是这样又是没有意义的。。请问 该如何是好?

解决方案 »

  1.   

    这种语法有错,另外这样查也没什么意义,比如如果第一条语句查出只有姓张和姓李的,如果第二条语句通过的话,你还是把所有姓张和姓李的查出来了,这跟直接查userinfo没有区别
    可以这么作,如果建立了张和李的标签,那你点张这个标签的时候就查一下表select * from userinfo where left(name,1)='张',达到目的
      

  2.   

    SELECT username  
    FROM userinfor a,
    (SELECT DISTINCT LEFT(name,1) AS bear  FROM userinfor)b
     where a.name like b.bear+'%'
      

  3.   

    谢谢兄弟们了,问题已经解决了,有的东西我想的复杂了,后来改了一点点东西,就很快就实现了,谢谢,尤其感谢zhaoanle(zhao)的提醒