如何使用 TypeORM 查询生成器转换字符串的查询“WHERE IN”?

How to convert query ' WHERE IN' of strings with TypeORM Query Builder?

在以下 TypeORM 查询中出现错误:

async exportUsers(stateId: string, zipcodes: string) 
{
  //zipcodes = '60563', '54656', '94087';//
  const query = await this.userRepository
  .createQueryBuilder('user')
  .select('user.email', 'email')
  .where('left(user.Zip,5) in :zip', { zip: zipcodes }); 
}

如何使用 IN 将包含 'array of strings' 的字符串传递给 TypeORM 查询。

用此代码替换您的 where 子句:

.where("left(user.Zip,5) IN (:zip )", { zip : zipcodes })

注意:您的邮政编码变量应该是数组格式;意思是:

zipcodes = ['94085','54656','94087']

这有效:

zipcodes = '60563', '54656', '94087';
const ziplist: string[] = zipcodes.replace("'", "").split(",");

查询更改为:

.where('left(s.ShipToZip,5) in (:...zip)', { zip: ziplist });