È fattibile, puoi usare la clausola LIKE per fare comparazioni di questo tipo e combinarle con l'operatore logico OR.
Puoi costruire la query dinamicamente in base a quanti nomi passi nella stringa a php (con get/post, separandoli con explode).
Ti faccio un esempio:
Codice PHP:
$input = "giorgio alberto rossi";
$names = explode(" ", $input); // = array("giorgio", "alberto", "rossi");
$fields = array("nome", "cognome", "username"); // i campi da comparare = campi della tabella
$sql_query = "SELECT * FROM utenti WHERE "; // query da completare
// itera sui campi
foreach($fields as $field) {
// itera sull'input
foreach($names as $name) {
$sql_query .= $field . " LIKE '%" . $name . "%' OR ";
}
}
$sql_query = substr($sql_query, 0, -3); // rimuove "OR " alla fine della query
// ora puoi eseguire la query
Ovviamente, fai attenzione all'input dell'utente e ricorda di fare l'escape alla stringa per motivi di sicurezza (sql injection).