Trust level 0 + insignia de campo personalizado

Hola. Quiero crear una insignia basada en el nivel de confianza y la opción elegida en un campo personalizado de tipo lista desplegable, pero sigo recibiendo este mensaje (tampoco estoy seguro de si el resto de la consulta es correcta, así que cualquier ayuda será apreciada):

ERROR: la columna "Woman" no existe
LÍNEA 10: ) AND LENGTH(cf.value) = "Woman"

Cómo debería funcionar:
He creado un campo personalizado de usuario llamado “Gender” con dos opciones: “Man” y “Woman”.
Si el usuario X es hombre y está registrado (nivel de confianza 0), se debe otorgar la insignia “Warrior Male”; de lo contrario, la insignia “Warrior Female”.

Además, ¿alguien puede decirme dónde puedo ver el número del campo de usuario para todos mis campos personalizados existentes? (en mi ejemplo estoy usando el nombre del campo, pero por si acaso).

La consulta hasta ahora (no funciona):

SELECT u.id, current_timestamp, cf.user_id user_id, cf.updated_at granted_at 
FROM users u, user_custom_fields cf 
INNER JOIN user_fields uf
      ON uf.id = (0 || regexp_replace(cf.name, 'user_field_', ''))::integer
      AND uf.name = 'Gender'
WHERE trust_level >= 0 AND (
  :backfill OR u.id IN (:user_ids)
) AND LENGTH(cf.value) = "Woman"

¡Muchas gracias! :slightly_smiling_face:

2 Me gusta

El campo personalizado funciona ahora (intenté implementar este ejemplo), pero sin importar el nivel de confianza que escriba, el número de usuarios potenciales permanece igual:

    SELECT cf.user_id user_id, cf.updated_at granted_at
    FROM user_custom_fields cf
    INNER JOIN user_fields uf
      ON uf.id = (0 || regexp_replace(cf.name, 'user_field_', ''))::integer
      AND uf.name = 'Gender'
    WHERE cf.value = 'Woman'
AND EXISTS (
  SELECT u.id user_id, current_timestamp granted_at FROM users u
    WHERE trust_level >= 0 AND (
  :backfill OR u.id IN (:user_ids)
    )
)

¿Alguna idea?