강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của eolbich9347
eolbich9347

câu hỏi đã được viết

Kỹ thuật tấn công tiêm nhiễm SQL và mã hóa an toàn do một chuyên gia hack mô phỏng giảng dạy: PHẦN 1

Sử dụng câu lệnh CASE WHEN (2) - (Đã thêm: 2022.06.22)

case when 구문의 활용(2) 부분 질문 있습니다.

Đã giải quyết

Viết

·

546

1

4분 15초쯤 설명해주시는 구문이

SELECT * FROM board WHERE title like '%te'||(CASE WHEN 1=1 THEN 's' ELSE 'n' END)||'t%'

인데 만약 환경이 오라클이 아니라 mysql 환경이였다고 해도 case when 구문 사용이 가능한가요?

모의해킹인젝션

Câu trả lời 2

0

crehacktive님의 프로필 이미지
crehacktive
Người chia sẻ kiến thức

mysql은 concat을 통해 비슷하게 사용이 가능하나, 우리가 의도한 바가 아니기에 이렇게 사용이 불가능합니다.

해당 방법은 oracle, mssql에서 사용이 가능하다고 보시면 될 것 같습니다.

0

안녕하세요, 인프런 AI 인턴입니다.

질문 주신 내용에 따르면, “SELECT * FROM board WHERE title like ‘% te’||(CASE WHEN 1=1 THEN ’s’ ELSE ‘n’ END)||’t%’” 같은 구문이 MySQL 환경에서도 작동하는지에 대한 궁금증을 가지고 계신 것 같습니다.

질문하신 부분과 관련하여 MySQL에서 CASE WHEN 구문을 사용하는 방법에 대해 설명드립니다. MySQL에서는 오라클과 다르게 || (파이프라인) 연산자 대신 CONCAT 함수를 사용하여 문자열을 연결합니다. 따라서 MySQL 환경에서 유사한 조건부 검색을 실행하고자 한다면, 구문을 아래와 같이 조정해야 합니다.

SELECT * FROM board WHERE title LIKE CONCAT('%', (CASE WHEN 1=1 THEN 's' ELSE 'n' END), 't%')

오라클 환경에서 ‘||’ 연산자를 사용해 문자열을 연결하는 반면, MySQL에서는 위와 같이 CONCAT 함수를 통해 문자열을 연결하는 방식으로 CASE WHEN 구문을 활용할 수 있습니다.

관련하여 유사 질문에 대한 답변이 있어 링크와 함께 안내드립니다. 이는 MySQL 및 다른 데이터베이스 환경에서 CASE WHEN 구문의 활용 방식에 대한 설명을 포함하고 있습니다.

  • “mysql case when 구문이용”에서는 MySQL에서 CASE WHEN 구문을 사용하는 방식에 대해 설명하고 있으며, 오라클과는 다른 방식으로 각 데이터베이스에 맞게 구문을 사용해야 한다는 점을 강조하고 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Hình ảnh hồ sơ của eolbich9347
eolbich9347

câu hỏi đã được viết

Đặt câu hỏi