2012-06-10 3 views
3

J'essaye de déplacer le hachage de l'application serveur vers PostgreSQL. En d'autres termes je dois appeler une requête à PGSQL, qui compare la chaîne de la requête avec la chaîne du champ et retourne le résultat de la comparaison égale comme bool, mais je ne sais pas comment faire ceci sans procédures sur SQL clair.Comparer le champ avec la valeur et retourner la booléenne

màj: J'ai la table utilisateurs avec le champ mot de passe (actuellement texte, à l'avenir - bytea). Je veux écrire sometihng comme

select * from values ('WrittenPassword' = users.password) where username = 'someuser' , 

qui doit retourner true ou false comme résultat de la comparaison égale.

+1

SELECT 'fieldName = 'valeur de hachage' alias' ... – zerkms

+0

question vague. Fournir plus de détails et poster quel code vous avez déjà aiderait. – lanzz

+0

relire. Comparaison de chaîne de champ avec une autre spécifiée. –

Répondre

13

Vous pouvez utiliser une instruction CASE pour retourner certaines valeurs basées sur une condition:

SELECT 
    (CASE WHEN password = 'WrittenPassword' THEN 1 ELSE 0 END) AS is_equal 
FROM 
    users 
WHERE 
    username = 'someuser' 
+1

Merde, un humain normal avec une réponse normale. Merci, mon pote. –

+0

@ArmanStepanyan Avez-vous réalisé qu'il pourrait renvoyer NULL? – wildplasser

+0

NON NUL, d'accord? –

Questions connexes