如果是直接查询 pt=$rpt 的记录是这样
$sql = "SELECT * FROM 'user' where pt = {$rpt}";现在 pt 这个字段是个数组,比如有3条记录分别为ID   PT
1    aaaaa,bbbbb,ccccc,ddddd
2    www,zzz,vvv,qqq
3    ooo,pppp,lllll,ddd现在假如 rpt=ddd ,我想查出 PT 里有 ddd 的记录,那么应该是ID为 3 的那条记录,即完全匹配的。而不是1,和3两条记录。请问这个SQL该怎么写 ?

解决方案 »

  1.   

    直接在SQL里找出来有点难度吧,用正则?不过我没在SQL里操作过正则,你找找看相关文档
      

  2.   

    ... where find_in_set('$rpt', pt)
      

  3.   

    这样不对吧,那只要包含 rpt 的都匹配出来了
    我是想查出完全匹配的
      

  4.   

    不知道对不对 。。
    LZ试试?
    /* 根据楼主数据内容
     * 应该都是用某个特定分隔符分开的
     */
    $sql = "SELECT * FROM 'user' where pt = {$rpt}";
    $result = mysql_query($sql);
       while($row = mysql_fetch_array($result))
    {
      $arr = explode(',',$row['PT'])
      foreach($arr as $v)
      {
       if($v == {$rpt})
       {
        echo $v;
       }
      }
    }
      

  5.   


    这是对的,mysql文档说这种方式更快,你至少试试再说