#node.js #sequelize.js
Вопрос:
Я использую sequelize и хочу знать, как отправлять запросы с учетом регистра в мою базу данных.
У меня есть таблица users
со столбцом Login
.
И когда я отправляю запрос (data.Login = '***0xwraith***')
, sequelize находит меня пользователем с логином 0xWraith
. Но я хочу, чтобы логины 0xWraith
0xwraith
были четкими и отдельными.
Это код, который я использую:
let db_user = await db.users.findOne({
where: {
Login: data.login
}
});
Комментарии:
1. Можете ли вы добавить информацию о том, какую базу данных вы используете? Потому что чувствительность к регистру зависит от БД, а не от последовательности.
2. Mysql phpmyadmin
Ответ №1:
Сравнение строк MySQL по умолчанию не учитывает регистр.
Если вы хотите использовать запрос с учетом регистра только для этого запроса, вы можете добавить ДВОИЧНОЕ ключевое слово перед сравнением, чтобы включить его.
SELECT * FROM users WHERE BINARY(`Login`) = '0xWraith';
Вы можете написать запрос в последовательности следующим образом.
db.users.findOne({
where: sequelize.where(sequelize.fn('BINARY', sequelize.col('Login')), data.login)
})
Если вы хотите включить чувствительность к регистру как уровень таблицы, подробнее об этом читайте здесь https://dev.mysql.com/doc/refman/8.0/en/case-sensitivity.html.