[英]Search by first character in a column Typeorm PostgreSQL
我有一個公司表,我想在其中按首字母的名稱搜索公司。 在我的前端,我有一系列字母作為從 A 到 z 的復選框,並且我在請求正文中將選定的字母作為a,b,c
傳遞。
如果我執行這個原始查詢,那么它正在工作,但是我如何在 typeorm querybuilder 中編寫它
select * FROM companies WHERE lower(substring(name from 1 for 1)) = ANY (ARRAY['m'])
我已經嘗試過以下查詢 -
public async getCompanies(
pageOptionsQuery: CompanyPageOptionsDto,
): Promise<Company[]> {
const queryBuilder = this._companyRepository
.createQueryBuilder()
.select('*');
if (!!pageOptionsQuery.filter_by) {
//pageOptionsQuery.filter_by is like series of selected letters
//a,b,c
const filters = pageOptionsQuery.filter_by.split(',');
queryBuilder.where('LOWER(name) IN (:...filters )', {
filters: filters,
});
}
return queryBuilder.getRawMany();
}
這就是我想出的-
public async getCompanies(
pageOptionsQuery: CompanyPageOptionsDto,
): Promise<Company[]> {
const queryBuilder = this._companyRepository
.createQueryBuilder()
.select('*');
if (!!pageOptionsQuery.filter_by) {
//pageOptionsQuery.filter_by is like series of selected letters
//a,b,c
const filters = pageOptionsQuery.filter_by.split(',');
queryBuilder.where(
'LOWER(SUBSTRING(name, 1, 1)) IN (:...filters)',
{
filters,
},
);
}
return queryBuilder.getRawMany();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.