单纯的SQL恐怕不能完成。可以先用SQL取出sort_id包含1的数据:
SELECT pro_id
  FROM A
 WHERE FIND_IN_SET('1', sort_id);再用PHP计算:
$t = explode(",", $sort_id);
echo count(array_unique($t));

解决方案 »

  1.   

    嗯... 更正下:$t = explode(",", $pro_id);
    echo count(array_unique($t));
      

  2.   

    求sort_id為1的得兩條記錄 :
       pro_id
      1,2,3,
      2,4,5, 
    ==================
    合并后,去掉相同的2,
    剩下就是1,2,3,4,5,
    总共5条记录
      

  3.   

    wasuka:
    echo count(array_unique($t));
    谢谢你的问答,汗颜我的基础知识没掌握牢固,你这句话得到的结果都是1;这么得到里面数组的个数呢?
      

  4.   

    帮忙看一下我写的测试程序:
    <?
    require_once("../admin/includes/config.php");
    $user_id=$_GET['user_id'];
    $query="select * from i4g_tag where user_id='$user_id'";
     $num=Query_db($query,'num');//echo $num;echo "<br>";
         $result=Query_db($query,'result');
          for ($i=0; $i<$num; $i++)
        {
     $row=Rerult_to_array($result);
                 $tag_id=$row['tag_id']; 
     $tag_name=$row['tag_name'];//echo $tag_name;echo "<br>";
     $tag_id="[".$tag_id."]"; //echo $tag_id;echo "<br>";
     $sql2="select product from i4g_blog where user_id='$user_id' and FIND_IN_SET('$tag_id', tag)";
     $num2=Query_db($sql2,'num');//echo $num2;echo "<br>";
         $result2=Query_db($sql2,'result');
          for ($i=0; $i<$num2; $i++)
        {
     $row2=Rerult_to_array($result2);
     $pro_id.=$row2['product'];//echo $pro_id;echo "<br>";
     }//echo $pro_id;
    $t = explode(",", $pro_id);
    echo count(array_unique($t));
    }
    ?>
    ========================================
    出现的问题:程序的第一层循环之循环一次,第二层循环是得到了属于tag_id的所有记录数,并也能把他们归类在一个数组里面,但最终ECHO出来的总是1,并没有得到这个数组里面的总数;
    这个是为什么?
      

  5.   

    select sort_id as 重复的sort_id  ,count(sort_id) as pro_id的个数  from a group by sort_id   order by count(sort_id) desc
    这样就可以了
    应该就是你那意思吧
    试试看...ˇ—ˇ
      

  6.   

    $subs = array();
    while( $array = mysql_fetch_array( $result))
    {
    $subs = array_merge( $subs, explode(",", $array['prd_id']));
    }
    echo count(array_unique( $subs));
      

  7.   

    $sql ='SELECT pro_id  FROM tablename WHERE FIND_IN_SET('1', sort_id)';
    $rs = mysql_query($sql);
    while($row=mysql_fecth($rs))
    {
    $pro_id .=$row['pro_id'];
    }
    $array=explode(',',$pro_id)
    echo cout($array);
      

  8.   

    数据库结构: 
      id      tag       user_id     product
       1   1,2,3,      3        1,2,3,
       2   1,2,4,      3        2,4,5,
       3   2,3,4,      3        3,4,5,
      

  9.   

    $sql ='SELECT pro_id  FROM tablename WHERE FIND_IN_SET('1', sort_id)';
    $rs = mysql_query($sql);
    while($row=mysql_fecth($rs))
    {
    $pro_id .=$row['pro_id'];
    }
    $pro_id=substr($pro_id,0,(strlen($pro_id)-1))
    $array=explode(',',$pro_id)echo cout($array);