Ниже приведен код, который я использую для поиска без учета регистра в sequelize. Но когда пользователи хотят искать текст с помощью «_» и «%», оказывается, что этот sql вернет все записи в таблице, поскольку «_» и «%» являются символами подстановки в предложении like, и поэтому требуется экранирование.
where.text = sequelize.where(
sequelize.fn('LOWER', sequelize.col('text')),
{
$like: '%' + search_word.toLowerCase() + '%'
}
);
const result = await Table.findAndCountAll({
where
})
Есть ли встроенный метод, который мы можем использовать для решения этой проблемы внедрения кода? Я уже пробовал mysql.escape
, он не предназначен для предложения like и не экранирует '_' и '%'.