一个用户表里有字段名为FriendId 里面值是",1,2,3,4,5,6," 用逗号隔开存储的,每个数值都代表一个用户ID,我现在需要的是一句SQL,能查出这个字段值指定行里的所有用户信息(FriendsId是,1,2,3,4,5,6,那么结果就是有六条信息,用SQL一句话实现,不要用数组之类的,可以做到吗)不知道我这样说各位大虾能明白不?希望大家帮帮忙

解决方案 »

  1.   

    select * from tb charindex(','+ltrim(你传近来的ID)+',' , ',' + FriendId + ',') > 0
      

  2.   

    --用charindex
    select * from tb charindex(','+ltrim(你传近来的ID)+',' , ',' + FriendId + ',') > 0
    select * from tb charindex(','+cast(你传近来的ID as varchar)+',' , ',' + FriendId + ',') > 0--用like也行.
    select * from tb ',' + FriendId + ',' like '%,'+ltrim(你传近来的ID)+',%' 
    select * from tb ',' + FriendId + ',' like '%,'+cast(你传近来的ID as varchar)+',%' 
      

  3.   

    from table  where 
      

  4.   

    少了where--用charindex
    select * from tb where charindex(','+ltrim(你传近来的ID)+',' , ',' + FriendId + ',') > 0
    select * from tb where charindex(','+cast(你传近来的ID as varchar)+',' , ',' + FriendId + ',') > 0--用like也行.
    select * from tb where ',' + FriendId + ',' like '%,'+ltrim(你传近来的ID)+',%'  
    select * from tb where ',' + FriendId + ',' like '%,'+cast(你传近来的ID as varchar)+',%'  
      

  5.   


    我是根据一个用户来查询他里面的好友,比如传进来Uid是2,他里面好友“1,,3,4,5,6”我现在要查的是2这个人的所有好友信息,和你之前说的好像不是一个意思啊
      

  6.   

    最好给出完整的表结构,测试数据,计算方法和正确结果.否则耽搁的是你宝贵的时间。
    如果有多表,表之间如何关联?
    发帖注意事项
    http://topic.csdn.net/u/20091130/21/fb718680-98ff-4afb-98d8-cff2f8293ed5.html?24281
      

  7.   

    帖子发的有问题吗?我那样说应该很清楚了啊可是还没有满意答案,希望高手帮帮忙啊逻辑很简单的,根据一个用户ID = 2 查询 该用户里FriendsId(“,1,3,4,5,6,”)字段里好友所有信息,字段中","隔开的数字就是好友的Id
      

  8.   

    --使用两个自身表
    select b.* from tb a,tb b where a.id=2 and charindex(','+ltrim(b.id)+',',a.friendid)>0select b.* from tb a,tb b where a.id=2 and a.friendid like '%,'+ltrim(b.id)+',%'