Ninguna de las consultas anteriores te dará exactamente lo que buscas. Sin escribir una nueva consulta, el mejor enfoque sería ejecutar la primera consulta que publiqué varias veces. Ejecútala una vez por cada uno de tus campos personalizados. Introduce el nombre del campo en la entrada field_name de la consulta. La consulta a la que me refiero es esta:
--[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)