Sequelize区分大小写的查询

Sequelize case-sensitive queries

我正在使用 sequelize,想知道如何将区分大小写的查询发送到我的数据库。

我有 table usersLogin

当我发送请求时,(data.Login = '***0xwraith***'),sequelize 为我找到了登录名 0xWraith 的用户。但我希望登录 0xWraith0xwraith 是不同的和独立的。

这是我使用的代码:

let db_user = await db.users.findOne({
            where: {
                Login: data.login
            }
        });

MySQL的字符串比较默认不区分大小写。

如果您希望仅针对此查询进行区分大小写的查询,您可以在比较之前添加 BINARY 关键字以启用它。

SELECT * FROM users WHERE BINARY(`Login`) = '0xWraith';

您可以在 Sequelize 中编写查询,如下所示。

db.users.findOne({
    where: sequelize.where(sequelize.fn('BINARY', sequelize.col('Login')), data.login)
})

如果您想将区分大小写设为 table 级别,请在此处阅读更多相关信息 https://dev.mysql.com/doc/refman/8.0/en/case-sensitivity.html