Trust level 0 + custom field badge

Ciao. Vorrei creare un badge basato sul livello di fiducia e sull’opzione selezionata in un campo personalizzato a menu a tendina, ma continuo a ricevere questo messaggio (non sono nemmeno sicuro che il resto della query sia corretto, quindi apprezzo qualsiasi aiuto):

ERROR:  colonna "Woman" non esiste
LINE 10: ) AND LENGTH(cf.value) = "Woman"

Come dovrebbe funzionare:
Ho creato un campo personalizzato utente a menu a tendina chiamato “Genere” con due opzioni: “Uomo” e “Donna”.
Se l’utente X è un uomo e si è registrato (livello di fiducia 0), dovrebbe essere assegnato il badge “Guerriero Maschio”, altrimenti il badge “Guerriero Femmina”.

Potete anche dirmi dove posso vedere il numero del campo utente per tutti i miei campi personalizzati esistenti? (nel mio esempio sto usando il nome del campo, ma per sicurezza).

La query finora (non funzionante):

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"

Grazie mille! :slightly_smiling_face:

2 Mi Piace

Il campo personalizzato funziona ora (ho provato a implementare questo esempio), ma non importa quale livello di fiducia inserisca, il numero di utenti potenziali rimane invariato:

    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)
    )
)

Qualche idea?