create table test (
  id int(11) not null default '0' auto_increment,
  title varchar(255) not null,
  content text not null,
  primary key(id)
);
?php
/*************************************************************
/       支持逻辑OR/AND关键字搜索高亮显示搜索结果的代码
/*************************************************************
/        Title........: Search and Highlight Function
/************************************************************//*************************************************************
/  Function........: search_parse($keywords,$fields)
/  Notes...........:
/  ...$keywords....: eg. "a and b or c"
/  ...$fields......: Field's name eg:array("field1","field2")
/  Return..........: Return the SQL
/************************************************************/
function search_parse($keywords,$fields)
{
  if ($keywords)
  {
    $words = explode(" ",$keywords);
    for ($i = 0;$i < count( $words ); $i++)
    {
      if ($words[$i])
      {
        if (strtolower($words[$i]) == "and" || strtolower($words[$i]) == "or")
        {
          if ($i > 0)
          {
            if($words[$i] == "and")  $sql.=" AND ";
            elseif($words[$i] == "or")  $sql.=" OR ";
          }
        }
        else
        {
          $first=0;
          $sql_tmp="( ";
          foreach ($fields as $key => $value)
          {
            if ($first == 0)
            {
              $sql_tmp.=$value." LIKE '%".$words[$i]."%'";
              $first=1;
            }
            else
            {
              $sql_tmp.=" OR ".$value." LIKE '%".$words[$i]."%'";
            }
          }
          if(trim($sql_tmp) != "(") $sql_tmp.=" )";
          if($i == 0)  $sql=$sql_tmp;
          else $sql.=$sql_tmp;
        }
      }
    }
  }
  return $sql;
}
/*************************************************************
/  Function........: highlight_result($str,$keywords)
/  Notes...........:
/  ...$str.........: The String needed to highlight
/  ...$keywords....: eg. "a and b or c"
/  Return..........: Return the Highlighted String
/************************************************************/
function highlight_result($str,$keywords)
{
  $words = explode(" ",$keywords);
  for ($i=0;$i<count($words);$i++)
  {
    if(strtolower($words[$i]) == "and" or strtolower($words[$i]) == "or")
      continue;
    $str=str_replace("$words[$i]","<font color=blue><b>$words[$i]</b></font>",$str);
  }
  return $str;
}//Example:
$keywords="鉴于 and 一下";
$fields=array("title","content");
$link = @mysql_connect("localhost", "yjj", "ygfqqqqpe") or die("Could not connect");
$qq=mysql_select_db("yjj",$link) or die("Could not Select the Database!");
$sql=search_parse($keywords,$fields);
echo $sql;
$query="select title from test where $sql";
$result=mysql_query($query) or die("Invalid query:$query");
while($row=mysql_fetch_array($result))
{
  echo "<li>".highlight_result($row[title],$keywords)."</li>";
}
mysql_close($link);
?>
这好像是phpteam的还是谁的来,我以前收下来的,你可以参照一下,
其实很简单的,
你只要把这个字符一个一个(substr)分开然后组合成一个用or组合成while条件就可以了,