匹配到关键字的文章,只显示出关键字所在位置的左右定长字符串,逻辑思路是怎样的呢? 好比搜索“CSDN”,返回结果 ...当月中的微软MVP的CSDN会员名单揭晓了,祝贺....   关键字左右10个字符。

解决方案 »

  1.   

    .....where `key` like '%$key%' and char_length(`key`)=20+char_length($key) ...
      

  2.   


    这个是不是返回匹配到'%$key%'并且长度大于 (20+'%$key%')长度的值?并不能保证我要匹配的东西在字符串正中位置吧?
      

  3.   

    .....where `key` like '%$key%' and char_length(`key`)=20+char_length($key) and instr(`key`,'$key')=11  这样应该可以了
      

  4.   


    嗯,我也可以在php端来截 $start=strpos(string,key)-10;
    $end=strrpos(string,key)+10;
    $length=$end-$start;substr(string,$start,$length);