[NestJS] TypeORM의 Like

최익준·2023년 8월 25일
0

NestJS

목록 보기
2/2

tag에 대한 정보를 읽고 쓰고 지우는 api를 만들던 중, 태그 이름을 쿼리로 받아와서 그 이름과 유사한 태그를 보여주는 로직을 작성하면서 TypeORM의 Like 메소드를 사용해보았다.

예제 코드는 다음과 같다.

async searchTag(name: string){
	const tag = await this.tagRepository.find({
		where: { name: Like(`${name}%`) },
	});
	return tag;
}

주의해야할 점은 Like 안에 넣어주는 값인데, %의 위치에 따라 검색하는 방식이 달라진다.

  • %name%의 형태이면 'yp'만 입력해도 'type'이라는 단어가 정상적으로 검색된다.
  • name%의 형태이면 'yp'를 입력해도 'type'이 나오지 않는다. 오로지 'yp'로 시작하는 단어만 검색된다.

이렇게, %의 위치에 따라 검색할 수 있는 문자열이 달라진다.

ORM 사용을 선호하지 않는 편이기에 아래에 MySQL 쿼리문에서는 어떻게 사용하는지 적어두겠다.

'type'으로 시작하는 데이터 검색

select * from table_name where column_name like 'type%';

'ORM'으로 끝나는 데이터 검색

select * from table_name where column_name like '%ORM';

'yp'가 들어가는 데이터 검색

select * from table_name where column_name like '%yp%';
profile
공부하는 개발자 꿈나무

0개의 댓글