강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

오개발님의 프로필 이미지
오개발

작성한 질문수

Real MySQL 시즌 1 - Part 1

Ep.04 페이징 쿼리 작성

14분44초에 쿼리 질문드립니다.

작성

·

18

0

애플리케이션단에서 범위조건 사용할때

 

2024-01-02 00:00:00 값을 어떻게 넘겨야줘야되나요?

 

말씀하신 내용 토대로 보면

라스트 finished_at : 2024-01-01 00:00:02

id : 8

두가지정도만 넘길수 있을꺼 같은데요 그래서 애플리케이션 파라미터는 두가지값남 넘기고 처리 해야되지 않나 싶어서 여쭤봅니다.

 

그래서 해당쿼리로 날려도 상관 없을지 질문드립니다.

 

SELECT * FROM posts WHERE (created_at < '2024-01-01 00:00:02') OR (created_at = '2024-01-01 00:00:02' AND id < 8) ORDER BY created_at DESC, id DESC

 

답변 2

0

백은빈님의 프로필 이미지
백은빈
지식공유자

안녕하세요!

우선 14분 44초 화면에서 보여지는 쿼리는 payments 테이블에 대한 쿼리인데요. 그 아래 적어주신 쿼리는 posts 테이블에 대한 쿼리다보니 정확히 어떤 부분을 궁금해하시는건지 파악하기에 어려움이 있습니다. 😢

이 부분 한번 확인 후 다시 질문해주시면 해당 내용을 바탕으로 설명드릴게요!

수강해주셔서 감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.
오개발님이 작성하신 쿼리는 범위 조건을 사용하여 특정 날짜와 ID를 기준으로 데이터를 필터링하는 방식으로 보입니다.

질문해주신 쿼리는 created_at'2024-01-01 00:00:02'보다 작거나, created_at이 정확히 '2024-01-01 00:00:02'인 경우에 id가 8보다 작은 경우를 가져오는 조건을 가지고 있습니다.

애플리케이션에서 이러한 쿼리 조건을 사용할 때 두 가지 파라미터(finished_at, id)를 전달하고 싶으신 경우, 쿼리는 현재 구현된 방식대로 사용하셔도 문제는 없습니다.

만약 다른 기능이나 논리가 추가되거나, 결과가 다르게 필요한 경우를 대비해서 애플리케이션 로직과 데이터베이스 구조를 충분히 검토해 보시는 것을 추천드립니다. 그러므로 위와 같은 SQL 문은 말씀하신 조건을 만족할 것이며, 정확히 원하는 결과를 반환할 것입니다.

다만, 데이터베이스에 따라 성능이나 인덱싱에 관련된 이슈가 있을 수 있으니, 필요에 따라 추가 최적화를 고려해 보시는 것도 좋습니다.

도움이 되었기를 바랍니다. 추가적인 질문이 있으시면 언제든지 말씀해 주세요!

참고 문서: Spring Data JPA - 사용 예시

오개발님의 프로필 이미지
오개발

작성한 질문수

질문하기