11

サーバーアプリからPostgreSQLにハッシュチェックを移動しようとしています。言い換えれば、クエリからの文字列をフィールドからの文字列と比較し、等しい比較の結果をboolとして返すPGSQLへのクエリを呼び出す必要がありますが、クリアSQLの手順なしでこれを行う方法がわかりません。

upd:フィールドパスワードを持つテーブルユーザーがいます(現在はtext、将来的にはbytea)。のようなものを書きたい

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

等しい比較の結果として true または false を返す必要があります

4

1 に答える 1

30

CASEステートメントを使用して、条件に基づいて特定の値を返すことができます。

SELECT 
    (CASE WHEN password = 'WrittenPassword' THEN 1 ELSE 0 END) AS is_equal
FROM
    users
WHERE
    username = 'someuser'
于 2012-06-10T23:36:36.107 に答える