-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
SQL문 질문
22.06.23 22:50 작성 조회수 139
0
선생님 채팅방 강퇴를 구현중인데, 강퇴한사람이 해당 방 맴버가 맞는지 그리고 강퇴권한(isOwner OR isManager)이 있는지 체크하려는 sql문을 작성중입니다.
SELECT `rm`.`UserId` AS `rm_UserId`, `rm`.`RoomId` AS `rm_RoomId` FROM `room_members` `rm` WHERE `rm`.`RoomId` = ? AND `rm`.`UserId` = ? AND `rm`.`isOwner` = ? OR `rm`.`isManager` = ?
이렇게 sql을 짜도 될지 모르겠습니다.
roomId와 userId에 인덱싱이 걸려서 먼저 처리되고 isOwner OR isManager 둘중 하나인지 확인하려고하는데,
마지막에 or 때문에 풀쿼리들어갈까봐 걱정됩니다. 저렇게 짜도 괜찮을까요??
typeorm으론 이렇습니다.
const isManager = await this.roomMembersRepository
.createQueryBuilder('rm')
.select('rm.UserId')
.where('rm.RoomId = :RoomId AND rm.UserId = :UserId', { RoomId, UserId })
.andWhere('rm.isOwner = :isOwner OR rm.isManager = :isManager', {
isOwner: true,
isManager: true,
})
.getOne();
답변을 작성해보세요.
0
답변 1