如何为 MySQL 构建区分大小写的查询
How to build a case sensitive query for MySQL
如题。我粗略地发现了一些关于该主题的问题,但是建议的解决方案对我不起作用(抛出错误或生成的查询缺少条件)或明显错误,例如。建议 $eq
运算符区分大小写 - 绝对不是。
如何修改此查询以使其区分大小写?
models.Item.findOne({
where: {
name: 'soughtString'
}
});
您可以尝试将 eq
与 SHA1
函数结合使用,如下所示:
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')
如题。我粗略地发现了一些关于该主题的问题,但是建议的解决方案对我不起作用(抛出错误或生成的查询缺少条件)或明显错误,例如。建议 $eq
运算符区分大小写 - 绝对不是。
如何修改此查询以使其区分大小写?
models.Item.findOne({
where: {
name: 'soughtString'
}
});
您可以尝试将 eq
与 SHA1
函数结合使用,如下所示:
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')