문제은행 DB 설계 분투기 13 - 오타그만, 띄어쓰기 있으면 다른 string으로 인식

양태환·2023년 9월 26일

인턴기

목록 보기
12/14

오늘은 CRUD를 모두 완성시켜볼 생각이다.


오타 그만!


업데이트 쿼리문은 잘 실행이 되는데
result가 없다.
왜 그런걸까

이렇게 오타를 내놨기 때문에 그렇습니다.

오류가 나는 부분을 점점 특정하여 쿼리문이 정상 실행되어도 아무런 영향이 없다는 것을 깨달았고, 그렇게 WHERE절의 문제라는 것을 알았습니다.

그래서 WHERE절에 들어가는 데이터를 보게되었고 해당 테이블에 없는 데이터를 보내고 WHERE절에 사용해서 쿼리문이 동작해도 아무런 변화가 없었던 것이었습니다.


띄어쓰기로 단어 사이를 구분하니까 다른 string으로 인식한다.

delete 쿼리문은 잘못 된 게 없는데 아무 것도 안 뜨길래 ![](https://velog.velcdn.com/images/ygen1002/post/5aa8111b-8f5a-49b4-ba49-ae12f0c0f27b/image.png) 왜 아무 데이터도 안 들어갔나 했더니

MySQL에서 같은 쿼리문을 실행해본 결과
해당 테이블의 행 값이 다른 테이블의 foreign key로 사용되고 있었기 때문이었다.

그렇기 때문에 다른 테이블과의 관계를 정리한 뒤에 foreign key를 삭제할 수 있겠다!

이런 이유도 있었는데
살펴보니 사소한 띄어쓰기 차이로 '무서운퀴즈' 와 '무서운 퀴즈' 가 다르게 인식되었기 때문에 아무것도 영향을 끼치지 않았던 것이다.

선배님에게 물어본 결과 띄어쓰기는 다르게 인식하도록 시스템이 동작된다고 하여
띄어쓰기를 없애주는 함수는 만들진 않겠다.


마이바티스에서 if else문

마이바티스에서 if else문을 사용하려고합니다.
참조한 글 - https://mondhaim.tistory.com/4

다들 choose when 조건 절을 사용한다.

<choose>
	<when test="여기에 조건 작성">
    </when>
</choose>

그러하다.

profile
당신의 오류 제가 잡아드립니다.

0개의 댓글