Javascript 如何执行类似的查询类型

Javascript 如何执行类似的查询类型,javascript,typescript,typeorm,Javascript,Typescript,Typeorm,大家好,我正试图找到所有的结果,其中有一个在他们。我试过几种方法,但问题是什么都不管用。它只返回一个空数组 var data = await getRepository(User) .createQueryBuilder("user") .where("user.firstName = %:name%", {name: firstName }) .getMany(

大家好,我正试图找到所有的结果,其中有一个在他们。我试过几种方法,但问题是什么都不管用。它只返回一个空数组

  var data = await  getRepository(User)
                        .createQueryBuilder("user")
                        .where("user.firstName = %:name%", {name: firstName })
                .getMany();
诸如此类

 var data = await  getRepository(User)
                            .createQueryBuilder("user")
                            .where("user.firstName like %:name%", {name: firstName })
                    .getMany();
但一切都不起作用。所有这些都返回给我一个空数组。有人能帮帮我吗谢谢正确的方法是:

 var data = await getRepository(User)
                  .createQueryBuilder("user")
                  .where("user.firstName like :name", { name:`%${firstName}%` })
                  .getMany();

TypeORM提供了开箱即用的
Like
功能。范例

从“typeorm”导入{Like};
const loadedPosts=await connection.getRepository(Post.find)({
标题:如(“%out#%”)
});
就你而言:

var data=await-getRepository(用户)。查找({
名称:如(`%${firstName}%`)
});

您还可以使用数据库函数进行连接。例如,在postgres中:

 var data = await getRepository(User)
              .createQueryBuilder("user")
              .where("user.firstName like '%' || :name || '%'", {name: firstName })
              .getMany();

我就是这样做的。希望它对使用存储库有所帮助,我将它放在中,例如:

await this.userRepository.findAndCount({
      relations: ['roles', 'company'],
      where: `(username like '%${seachValue}%' or firstname like '%${seachValue}%' 
      or lastname like '%${seachValue}%' or email like '%${seachValue}%')`,
      order: {
        [sortField]: sortDirection,
      },
    });

这会不会正确地转义
firstName
?我测试了它。。。我想它确实参数化了。@user3413723我刚刚测试过这个。它确实转义引号和其他字符,但它不会(也不能)转义“%”和“”字符。如果您像我一样来这里寻找
ilike
,它似乎即将发布:如果
firstName
不是一个安全值,您的解决方案就不会受到SQL注入的保护
await this.userRepository.findAndCount({
      relations: ['roles', 'company'],
      where: `(username like '%${seachValue}%' or firstname like '%${seachValue}%' 
      or lastname like '%${seachValue}%' or email like '%${seachValue}%')`,
      order: {
        [sortField]: sortDirection,
      },
    });