📅  最后修改于: 2023-12-03 15:07:42.151000             🧑  作者: Mango
在使用 Knex 中进行 % 模糊查询时,需要注意对特殊字符进行转义,否则可能产生语法错误或 SQL 注入的风险。本文将介绍如何在 Knex 中转义 % 模糊查询的关键字。
在 Knex 中,使用 where
和 like
方法进行模糊查询。
使用 %
进行匹配时,需要将其转义为 \\%
。这是因为 %
在 SQL 中被视为通配符,匹配任意字符,因此需要进行转义。转义符号为 \
,但是由于在 JavaScript 中 \
也需要进行转义,因此需要写成 \\
。
以下是代码示例:
const searchName = 'Tom';
knex('users')
.select('*')
.where('name', 'like', `%${searchName.replace(/\\/g, '\\\\').replace(/%/g, '\\%')}%`)
.then(rows => {
console.log(rows);
});
在这个例子中,我们使用了一个替换函数,将 %
和 \
进行了替换,替换成了 \\%
和 \\\\
。这样,就可以安全地进行模糊查询了。
在 Knex 中进行 % 模糊查询时,需要特别注意对特殊字符进行转义,以避免出现语法错误或 SQL 注入的风险。转义 %
需要使用 \\%
进行转义。我们可以使用替换函数,将 %
和 \
替换成 \\%
和 \\\\
,来避免手动转义带来的错误。