Има начин, но става скъп, колкото повече полета добавяте. Същото се случва с много CMS, които избират да съхраняват допълнителни потребителски данни в тази форма.
Можете да получите работещ SQL за търсене, като използвате това:
SELECT
users.*,
firstname.data AS firstname,
lastname.data AS lastname,
eyecolor.data AS eyecolor,
FROM
users
LEFT JOIN completed_form_fields AS firstname ON firstname.userid = users.id AND firstname.fieldkey = "firstname"
LEFT JOIN completed_form_fields AS lastname ON lastname.userid = users.id AND lastname.fieldkey = "lastname"
LEFT JOIN completed_form_fields AS eyecolor ON eyecolor.userid = users.id AND eyecolor.fieldkey = "eyecolor"
WHERE
firstname.data LIKE '%searchdata%'
OR lastname.data LIKE '%searchdata%'
OR eyecolor.data LIKE '%searchdata%'
Този метод става много голям и скъп за MySQL сървъра, колкото повече добавяте таблици. Затова бих препоръчал да не посещавате повече от 10-15 присъединявания по този начин и след това отново ще го профилирам, за да се уверя.