tag에 대한 정보를 읽고 쓰고 지우는 api를 만들던 중, 태그 이름을 쿼리로 받아와서 그 이름과 유사한 태그를 보여주는 로직을 작성하면서 TypeORM의 Like 메소드를 사용해보았다.
예제 코드는 다음과 같다.
async searchTag(name: string){
const tag = await this.tagRepository.find({
where: { name: Like(`${name}%`) },
});
return tag;
}
주의해야할 점은 Like 안에 넣어주는 값인데, %의 위치에 따라 검색하는 방식이 달라진다.
이렇게, %의 위치에 따라 검색할 수 있는 문자열이 달라진다.
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%';