Có một cách nhưng nó sẽ trở nên đắt hơn khi bạn thêm nhiều trường. Điều tương tự cũng xảy ra với nhiều CMS chọn lưu trữ dữ liệu người dùng bổ sung ở dạng đó.
Bạn có thể nhận được một SQL tìm kiếm đang hoạt động bằng cách sử dụng sau:
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%'
Phương pháp này trở nên rất lớn và tốn kém cho máy chủ MySQL khi bạn thêm nhiều bảng. Do đó, tôi khuyên bạn không nên tham gia nhiều hơn 10-15 lần tham gia như vậy và sau đó lặp lại, tôi sẽ lập hồ sơ để đảm bảo.