SQL 쿼리 바인딩 파라미터 결합기
MyBatis, JPA 등에서 분리된 쿼리문과 `?` 파라미터 매핑 값을 완성된 SQL 문으로 결합합니다.
분리된 SQL 쿼리와 파라미터를 입력하면 `?` 자리표시자 순서에 맞춰 실행 확인용 완성 SQL을 만들어 드려요. 문자열, 숫자, NULL, 불리언 값을 SQL 리터럴 형식으로 자동 변환합니다.
SQL 쿼리 바인딩 파라미터 결합기
계산 공식 및 예시
완성 SQL = 원본 SQL의 ? 자리표시자를 입력 순서에 따른 SQL 리터럴로 치환SQL 쿼리 바인딩 파라미터 결합기 사용법
MyBatis, JPA, JDBC 로그에서는 SQL 문장과 실제 파라미터 값이 분리되어 표시되는 경우가 많습니다. 이 도구에 원본 쿼리와 파라미터를 입력하면 ? 자리표시자를 입력 순서에 맞춰 SQL 리터럴로 치환해 완성된 SQL을 확인할 수 있습니다.
파라미터는 한 줄에 하나씩 입력하거나 쉼표로 구분할 수 있습니다. 숫자는 숫자 그대로, NULL은 SQL의 NULL로, 그 밖의 값은 작은따옴표로 감싸진 문자열로 변환됩니다.
계산 방법
쿼리의 문자열 리터럴과 주석 안에 있는 물음표는 제외하고 실제 바인딩 자리표시자만 파라미터 순서대로 치환합니다. 문자열에 작은따옴표가 포함되면 SQL 표준에 따라 작은따옴표를 두 번 사용해 이스케이프합니다.
예를 들어 WHERE id = ? AND status = ?에 42, 'ACTIVE'를 입력하면 WHERE id = 42 AND status = 'ACTIVE'가 됩니다.
계산 예시
- 사용자 조회:
SELECT * FROM users WHERE id = ? AND status = ?와42,'ACTIVE'를 입력하면SELECT * FROM users WHERE id = 42 AND status = 'ACTIVE'로 결합됩니다. - 기간 조건 조회:
user_id에1001, 시작일에'2026-01-01', 종료일에'2026-08-23'을 순서대로 입력하면 세 개의?가 각각 해당 값으로 치환됩니다. - 문자열 이스케이프:
O'Reilly를 입력하면 SQL에서 안전하게 표시할 수 있도록'O''Reilly'로 변환됩니다.
사용 시 주의사항 및 활용 팁
- 본 계산기 결과는 실제 DB 실행이 아닌 로그 분석과 디버깅을 위한 참고용 SQL입니다.
- SQL의
?개수와 파라미터 개수가 다르면 결과를 만들지 않습니다. - 쿼리의 문자열 리터럴이나 주석 안에 있는
?는 바인딩 자리표시자로 세지 않습니다. - 실제 서비스 코드에서는 완성된 SQL 문자열을 직접 조합하지 말고 PreparedStatement, MyBatis 바인딩, JPA 파라미터 바인딩을 사용하세요.
- 쉼표가 포함된 문자열은 한 줄에 하나씩 입력하면 값이 잘못 분리되는 것을 피할 수 있습니다.
Q&A
자주 묻는 질문
파라미터는 어떤 형식으로 입력해야 하나요?
한 줄에 하나씩 입력하거나 쉼표로 구분해 입력할 수 있습니다. 숫자는 그대로 사용하고 일반 문자는 문자열로 감싸며 NULL과 TRUE, FALSE는 SQL 키워드로 처리합니다.
문자열 안에 작은따옴표가 있으면 어떻게 처리되나요?
O'Reilly처럼 작은따옴표가 포함된 문자열은 SQL 표준에 맞춰 작은따옴표를 두 개로 이스케이프하여 'O''Reilly' 형태로 표시합니다.
이 결과 SQL을 그대로 운영 DB에서 실행해도 되나요?
이 도구의 결과는 로그 확인과 디버깅을 위한 참고용입니다. 실제 애플리케이션에서는 SQL 인젝션을 방지할 수 있는 PreparedStatement나 프레임워크의 바인딩 기능을 계속 사용해야 합니다.