Tôi có thể đã hiểu lầm nhưng bạn có cân nhắc việc làm này không:
SELECT * FROM customer WHERE
CONCAT(firstname, " ", lastname) LIKE '%$pattern%'
nếu người dùng nhập nhiều hơn một từ, được phân tách bằng khoảng trắng, chỉ cần tách chuỗi thành các từ và sửa đổi truy vấn thành
SELECT * FROM customer WHERE
CONCAT(firstname, " ", lastname) LIKE '%$word1%'
OR CONCAT(firstname, " ", lastname) LIKE '%$word2%'
OR CONCAT(firstname, " ", lastname) LIKE '%$word3%'
...