📜  在 Knex 中转义 % where like query (1)

📅  最后修改于: 2023-12-03 15:07:42.151000             🧑  作者: Mango

在 Knex 中转义 % where like query

简介

在使用 Knex 中进行 % 模糊查询时,需要注意对特殊字符进行转义,否则可能产生语法错误或 SQL 注入的风险。本文将介绍如何在 Knex 中转义 % 模糊查询的关键字。

转义 %

在 Knex 中,使用 wherelike 方法进行模糊查询。

使用 % 进行匹配时,需要将其转义为 \\%。这是因为 % 在 SQL 中被视为通配符,匹配任意字符,因此需要进行转义。转义符号为 \,但是由于在 JavaScript 中 \ 也需要进行转义,因此需要写成 \\

以下是代码示例:

const searchName = 'Tom';
knex('users')
  .select('*')
  .where('name', 'like', `%${searchName.replace(/\\/g, '\\\\').replace(/%/g, '\\%')}%`)
  .then(rows => {
    console.log(rows);
  });

在这个例子中,我们使用了一个替换函数,将 %\ 进行了替换,替换成了 \\%\\\\。这样,就可以安全地进行模糊查询了。

总结

在 Knex 中进行 % 模糊查询时,需要特别注意对特殊字符进行转义,以避免出现语法错误或 SQL 注入的风险。转义 % 需要使用 \\% 进行转义。我们可以使用替换函数,将 %\ 替换成 \\%\\\\,来避免手动转义带来的错误。