Saya mungkin salah paham tetapi apakah Anda mempertimbangkan untuk melakukan ini:
SELECT * FROM customer WHERE
CONCAT(firstname, " ", lastname) LIKE '%$pattern%'
jika pengguna memasukkan lebih dari satu kata, dipisahkan oleh spasi, cukup pisahkan string menjadi kata-kata dan ubah kueri menjadi
SELECT * FROM customer WHERE
CONCAT(firstname, " ", lastname) LIKE '%$word1%'
OR CONCAT(firstname, " ", lastname) LIKE '%$word2%'
OR CONCAT(firstname, " ", lastname) LIKE '%$word3%'
...