Hola.
una "sugerencia" es que al obtener la cadena a buscar, la trates para contar sus partes.
Código PHP:
<?php
$partes=explode(" ",$cad_a_bus);
$num=count($partes);
?>
luego, si tienes 1 palabra, utilizas 1 consulta y si son mas, utilizas otra.asi:
Código PHP:
<?php
if ($num==1){
//SI SOLO HAY UNA PALABRA DE BUSQUEDA SE ESTABLECE UNA INSTRUCION CON LIKE
$cadbusca=mysql_query("SELECT * FROM tu_tabla WHERE (id LIKE '%".$cad_a_bus."%') OR (campo_2 LIKE '%".$cad_a_bus."%') OR (campo_3 LIKE '%".$cad_a_bus."%')") or die("MySQL Error: ".mysql_error());
}else{
//SI HAY UNA FRASE SE UTILIZA EL ALGORTIMO DE BUSQUEDA AVANZADO DE MATCH AGAINST
//busqueda de frases con mas de una palabra y un algoritmo especializado
$cadbusca=mysql_query("SELECT * FROM tu_tabla WHERE MATCH (campo_nombre_completo_ej) AGAINST ( '".$cad_a_bus."' IN BOOLEAN MODE ) ORDER BY campo_nombre_completo_ej DESC") or die("MySQL Error: ".mysql_error());
}
?>
es un metodo sencillo, yo lo ocupo en una busqueda pequeña y funciona perfecto.
ojala sirva de algo
Saludos!