MySQL 提供了正则表达式检索,为何不用一下呢?
$word = '大码 羊毛 外套';
$word = preg_replace('/\s+/', '|' ,trim($word));
$sql = "select * from tbl_name where concat(title,content) REGEXP '$word'";如果条件允许的话,使用第三方的全文检索驱动,效率要高很多

解决方案 »

  1.   

    同时包含不好做,因为有出现的次序问题
    虽然 大码.*羊毛 是一种途径
    但 羊毛.*大码 是否也是可以的呢?MySQL 的正则比较简陋,象 php 的这种写法是不支持的$s = '秋冬新款大码女装宽松毛衣外套女开衫加厚中长款羊毛';
    $p = '/(?=.*羊毛)(?=.*大码).*/';
    echo preg_match($p, $s); //1 匹配成功本来是为了简捷,弄复杂了就没意思了