按注册“自定义字段”筛选用户的查询

以上所有查询都不能完全满足您的需求。在不编写新查询的情况下,最好的方法是多次运行我发布的第一个查询。为每个自定义字段运行一次。将字段名称输入查询的 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)