enhance: case-insensitive search with ILike
This commit is contained in:
parent
2998943dfa
commit
db7a4fff03
2 changed files with 8 additions and 8 deletions
|
@ -228,19 +228,19 @@ export default abstract class DynamicQueryBuilder {
|
|||
query += ` IS NOT NULL`;
|
||||
break;
|
||||
case "contains":
|
||||
query += ` LIKE :${parameterKey}`;
|
||||
query += ` ILIKE :${parameterKey}`;
|
||||
parameters[parameterKey] = `%${condition.value}%`;
|
||||
break;
|
||||
case "notContains":
|
||||
query += ` NOT LIKE :${parameterKey}`;
|
||||
query += ` NOT ILIKE :${parameterKey}`;
|
||||
parameters[parameterKey] = `%${condition.value}%`;
|
||||
break;
|
||||
case "startsWith":
|
||||
query += ` LIKE :${parameterKey}`;
|
||||
query += ` ILIKE :${parameterKey}`;
|
||||
parameters[parameterKey] = `${condition.value}%`;
|
||||
break;
|
||||
case "endsWith":
|
||||
query += ` LIKE :${parameterKey}`;
|
||||
query += ` ILIKE :${parameterKey}`;
|
||||
parameters[parameterKey] = `%${condition.value}`;
|
||||
break;
|
||||
case "timespanEq":
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Brackets, Like, Not, SelectQueryBuilder } from "typeorm";
|
||||
import { Brackets, ILike, Not, SelectQueryBuilder } from "typeorm";
|
||||
import { dataSource } from "../../../data-source";
|
||||
import { member } from "../../../entity/club/member/member";
|
||||
import DatabaseActionException from "../../../exceptions/databaseActionException";
|
||||
|
@ -30,7 +30,7 @@ export default abstract class MemberService {
|
|||
|
||||
if (searchBits.length < 2) {
|
||||
query = query.where(
|
||||
`member.firstname LIKE :searchQuery OR member.lastname LIKE :searchQuery OR member.internalId LIKE :searchQuery`,
|
||||
`member.firstname ILIKE :searchQuery OR member.lastname ILIKE :searchQuery OR member.internalId ILIKE :searchQuery`,
|
||||
{
|
||||
searchQuery: `%${searchBits[0]}%`,
|
||||
}
|
||||
|
@ -42,12 +42,12 @@ export default abstract class MemberService {
|
|||
query = query
|
||||
.orWhere(
|
||||
new Brackets((qb) =>
|
||||
qb.where({ firstname: Like(`%${term[0]}%`) }).andWhere({ lastname: Like(`%${term[1]}%`) })
|
||||
qb.where({ firstname: ILike(`%${term[0]}%`) }).andWhere({ lastname: ILike(`%${term[1]}%`) })
|
||||
)
|
||||
)
|
||||
.orWhere(
|
||||
new Brackets((qb) =>
|
||||
qb.where({ firstname: Like(`%${term[1]}%`) }).andWhere({ lastname: Like(`%${term[0]}%`) })
|
||||
qb.where({ firstname: ILike(`%${term[1]}%`) }).andWhere({ lastname: ILike(`%${term[0]}%`) })
|
||||
)
|
||||
);
|
||||
});
|
||||
|
|
Loading…
Add table
Reference in a new issue