不明白你想怎么匹配。 
至于字段中的,你可以去掉的,比如字段名为name,可以
select replace(name,',','') from 表; 得到的就是去掉逗号后的内容,你可以拿这个做你想要的匹配

解决方案 »

  1.   

    用FIND_IN_SET(str,strlist)就行。mysql> SELECT FIND_IN_SET('b','a,b,c,d');
    -> 2
      

  2.   

    FIND_IN_SET(要查询的关键字,数据库中以逗号分割的关键字字段)
      

  3.   

    那直接用like也可以啊,where 字段 like '%关键字%';
      

  4.   

    你不是用一个数组吗?怎么又用逗号了?取数组的第一个元素,然后
    SELECT FIND_IN_SET(数组元素,数据库字段),如果没有匹配会返回0,非0就是匹配。
    取数组下一个元素,再比较。。
    循环比较就行了。如果你的数组元素还包含逗号,那就是关键字设计的问题了。
      

  5.   

    还是不很清楚你的目的,是说要查出新闻表中字段包含有1,和2,及3的所有内容么
    select * from tabname where body like '%1,%' and body like '%2,%' and body like '%3%';是不是要的结果呢
      

  6.   

    $keyword = "电脑,IT新闻,WEB开发";
    $keyList = explode(",", $keyword);$sql .= "SELECT * FROM news 
             WHERE FIND_IN_SET('" . array_shift($keyList) . "',keywordField) IS NOT NULL ";
    foreach($keyList as $val)
    {
        $sql .= "|| FIND_IN_SET('" . $val . "',keywordField) IS NOT NULL ";
    }mysql_query( $sql );