Избегайте внедрения кода в предложении Sequelize "like" - PullRequest
0 голосов
/ 24 октября 2019

Ниже приведен код, который я использую для поиска без учета регистра в 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 и не экранирует '_' и '%'.

...