MySQL [Like의 사용법]

이전 포스팅에서 확인했던 것처럼 like 명령어는 DB 내에 위치한 각각의 셀에 포함된 문자열을 명령어임니다니다. ‘퍼센트’의 위치에 따라 특정 문자로 시작하거본인, 끝본인는 혹시은 특정한 문자열을 포함하는 셀을 출력한다.

>

보면 Name like ‘퍼센트ㅁㅁㅁ퍼센트’를 입력하여 셀의 중간에 ㅁㅁㅁ을 포함하는 모든 셀을 대상으로 출력합니다. like 후(後)의 퍼센트는 이전 포스팅에서 언급했던 것처럼 별도의 문자열을 의미합니다. 그래서 ‘ㅁㅁㅁ퍼센트’는 ㅁㅁㅁ로 시작하는 문자열을 의미하며, ‘퍼센트ㅁㅁㅁ’는 ㅁㅁㅁ로 끝자신는 문자열을 의미합니다. ​​

위의 기본 용법만 보면 like의 사용에 별 사고가 없어 보임. 그런데 ‘like’를 조건문 형식인 case에 사용하면 만은 사고가 발생할것이다. 우선 case의 기본 용법부터 한번 봅시다.

>

위와 같은 Database에서 case를 사용할것이다.

>

위의 기본 용법에서 주목해야 할 부분은 바로 case의 바로 옆에 칼럼명을 적었다는 점이다. 차후 조건문을 입력하는 When 부분에서는 단순히 특정한 문자열을 입력하여 해당 문자열에 해당하면 then 이하의 값을 출력하도록 하고 있읍니다.​

>

그런데 Cat이라는 3글자를 쓰기 싫어서….(뭐 이 경우는 사실 like를 쓰는 게 더 길어지긴 하지만.. 예시니까 이쁘게 봐주세요 ㅠㅠ) like를 적용하였습니다. 문자열에 ‘d’가 포함되면 멍멍이, ‘c’가 포함되면 야옹이입니다.​ 문제는 Syntax 에러가 발생했다는 점입니다. 이렇게 사용하면 안된다네요 ;; 사실 이 부분이 오항시 포스팅한 이유입니다. 계속 보시죠!​

>

case 구문에서 ‘like’를 사용하기 위해서는 이강과 함께 칼럼명을 각각의 when절마다 별도로 표기해주어야 합니다. MySQL 상의 인식 문재인듯 한데, 큰 규모의 변이가 있지 않는다면, case구문에서 like를 쓰기 위해서 우리는 이러한 불편을 감수해야만 할 것 같습니다 ㅠㅠ.​​