举个例子
select * from table where title like "%成龙%"
这样查询出来为什么就结果不是很正确,有些没带成龙的或只带一个成的都会查询出来
select * from table where title like binary "%成龙%"
这样查询就没有结果出来很郁闷。。title 字段是varchar(200)的请赐教!!!

解决方案 »

  1.   

    tanmoo:
    建议title字段定义成utf-8格式。若为ansi char格式,对于双字节字符易产生楼主所发现差错,主要原因:
    第一个汉字的后一字节与第二汉字的前一字节恰好可匹配“成”字,第二个汉字的后一字节与第三汉字的前一字节恰好可匹配“龙”字,这样就有问题了。若为unicode无此问题。
      

  2.   

    编码问题.
    php中 一个汉字在utf-8中为3个字节
      

  3.   

    把成龙用变量保存
    $topic_name ="成龙";
    like '%" . $topic_name ."%'
    试试
      

  4.   

    mysql_query("set names 文件编码");
    mysql_query('select * from table where title like "%成龙%"')
      

  5.   

    我在数据库的编码是utf8的
    但是前台页面是gb2312的