如何为 MySQL 构建区分大小写的查询

How to build a case sensitive query for MySQL

如题。我粗略地发现了一些关于该主题的问题,但是建议的解决方案对我不起作用(抛出错误或生成的查询缺少条件)或明显错误,例如。建议 $eq 运算符区分大小写 - 绝对不是。

如何修改此查询以使其区分大小写?

models.Item.findOne({
    where: {
       name: 'soughtString' 
    }
});

您可以尝试将 eqSHA1 函数结合使用,如下所示:

models.Item.findOne({
    where: {
     [Op.and]: [{
         name: 'soughtString',
       },
       sequelize.where(
         sequelize.fn('SHA1', sequelize.col('name')),
         '=', 
         sequelize.fn('SHA1', 'soughtString')
       )
    ]
});

这应该像这样的 SQL 条件:

where name = 'soughtString' and SHA1(name)= SHA1('soughtString')