Consulta para filtrar usuários por 'campos personalizados' de cadastro

Nenhuma das consultas acima lhe dará exatamente o que você procura. Sem escrever uma nova consulta, a melhor abordagem seria executar a primeira consulta que postei várias vezes. Execute-a uma vez para cada um dos seus campos personalizados. Insira o nome do campo na entrada field_name da consulta. A consulta a que me refiro é 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)