Ни один из вышеуказанных запросов не даст вам именно то, что вы ищете. Без написания нового запроса лучшим подходом будет многократный запуск первого запроса, который я опубликовал. Запустите его один раз для каждого из ваших пользовательских полей. Введите имя поля в входное поле field_name запроса. Запрос, на который я ссылаюсь, выглядит так:
--[params]
-- string :field_name
WITH ucf_name AS(
SELECT
CONCAT('user_field_', id) AS name
FROM user_fields
WHERE name = :field_name
)
SELECT
u.id AS user_id,
ucf.value
FROM users u
JOIN user_custom_fields ucf
ON ucf.user_id = u.id
WHERE ucf.name = (SELECT name FROM ucf_name)