Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript TypeForm:选择包含数组中所有值的结果_Javascript_Sql_Query Builder_Typeorm - Fatal编程技术网

Javascript TypeForm:选择包含数组中所有值的结果

Javascript TypeForm:选择包含数组中所有值的结果,javascript,sql,query-builder,typeorm,Javascript,Sql,Query Builder,Typeorm,我在从TypeForm查询中获取所需数据时遇到一些问题 基本上,我们有一个搜索栏供用户搜索我们的产品(药物)数据库。我想从数据库中选择包含用户输入的每个单词的所有记录。(这些词被分割成一个值数组。)它可能与产品名称不太匹配,所以我想我应该像使用一样使用 数据库中有英文、日文和中文结果。我想搜索英文名(nameEn)、日文名(nameJa)和中文名(nameZh),以查找包含所有用户搜索查询的任何结果 我不确定如何以编程方式循环搜索查询以及同时构建Typeorm查询 当前代码: const med

我在从TypeForm查询中获取所需数据时遇到一些问题

基本上,我们有一个搜索栏供用户搜索我们的产品(药物)数据库。我想从数据库中选择包含用户输入的每个单词的所有记录。(这些词被分割成一个值数组。)它可能与产品名称不太匹配,所以我想我应该像使用一样使用

数据库中有英文、日文和中文结果。我想搜索英文名(nameEn)、日文名(nameJa)和中文名(nameZh),以查找包含所有用户搜索查询的任何结果

我不确定如何以编程方式循环搜索查询以及同时构建Typeorm查询

当前代码:

const medicines=wait getRepository(Medicine)
.createQueryBuilder(“医学”)
.where('medicine.nameEn like:query',{query:'%bufferin%})
.在哪里(
新括号((qb)=>{
qb.where('medicine.nameEn like:query1'{
查询1:“%luna%”,
}).orWhere('medicine.nameEn-like:query2',{query2:EX'});
}),
)
.getMany();
这适用于获得匹配的英语产品。。。但现在我只是在查询“bufferin luna EX”中硬编码了。如果它是
['bufferin','luna','EX']
,并且还想检查
nameJa
nameZh
,我该怎么做


非常感谢您的时间。

在对其进行了更多测试之后,我找到了一种动态执行此操作的方法,方法是保存一个Select Query Builder实例,然后为每个查询添加
。和where
链。发布代码以防将来对任何人都有帮助

// get instance of Select Query Builder
let builder = await getRepository(Items)
  .createQueryBuilder('item')

// validating data
  .where('item.categoryId is not null')
  .andWhere('item.companyId is not null');
    

queries.map((query, index) => {
  const queryName = `query_${index}`;
  const escapedQuery = escapeLikeString(query);

  builder = builder   
  .andWhere(`item.nameEn like :${queryName}`, { [queryName]: `%${escapedQuery}%` })
  .orWhere(`item.nameJa like :${queryName}`, { [queryName]: `%${escapedQuery}%` })
  .orWhere(`item.nameZh like :${queryName}`, { [queryName]: `%${escapedQuery}%` })
});
    
  const items = await builder.getMany();