sql >> データベース >  >> RDS >> Mysql

Knexを使用してwhere句の値に関数を適用するにはどうすればよいですか?

    おそらく、 whereRaw() を使用する必要があります。

    knex('usr_info')
      .whereRaw('login = ? AND password = PASSWORD(?)', [login, password]);
    

    ちなみに、MySQLのPASSWORD()関数を独自のアプリ認証に使用しないでください。この関数はMySQL8.0.11で削除されました。 MySQL 5.7では、非推奨であり、注意事項があります:

    https://dev.mysql.com/doc /refman/5.7/en/encryption-functions.html#function_password

    また、クエリログにプレーンテキストで記録される可能性があるため、プレーンテキストのパスワードをクエリに渡すことはお勧めできません。

    代わりに、loginのみを検索することをお勧めします クエリでは、結果にはデータベースに保存されているハッシュ化されたパスワードが含まれます。アプリコードでパスワードをハッシュして、クエリによって返されたハッシュと比較できます。




    1. SQLiteアップデート

    2. テーブル値パラメータを変更する方法

    3. 従業員テーブルから2番目に高い給与を見つけるにはどうすればよいですか?

    4. Oracle PL / SQLでのINR通貨(インドルピー)の数字/数値の単語への変換