J'ai peut-être mal compris, mais avez-vous pensé à faire ceci :
SELECT * FROM customer WHERE
CONCAT(firstname, " ", lastname) LIKE '%$pattern%'
si l'utilisateur saisit plusieurs mots, séparés par des espaces, divisez simplement la chaîne en mots et modifiez la requête en
SELECT * FROM customer WHERE
CONCAT(firstname, " ", lastname) LIKE '%$word1%'
OR CONCAT(firstname, " ", lastname) LIKE '%$word2%'
OR CONCAT(firstname, " ", lastname) LIKE '%$word3%'
...