LIKE문으로 문자열을 가공하고자 할 경우 결과가 나오지 않을 때가 있다

글 제목이 '오늘'로 시작되는 글을 찾아보자


select title

from 테이블

where title like '오늘%'


LIKE문을 사용하지 않을 때는 오늘로 시작되는 글이 보이는데 왜 이럴까?

그럴 때는 어떤 문자가 숨어있는 건 아닌지 의심해보자


아래와 같이 ASCII함수를 사용해서 나오는 숫자를 확인해보자


select title, ASCII(title)

from 테이블

where title like '오늘%'


만일 13, 10, 9가 나왔다면 줄바꿈문자, 탭처럼 보이지 않는 문자가 숨어있어서 그렇다


이러한 문자를 제거해 줘야 한다

UPDATE 테이블명 SET title = REPLACE(title, CHAR(13), "")

UPDATE 테이블명 SET title = REPLACE(title, CHAR(10), "")

UPDATE 테이블명 SET title = REPLACE(title, CHAR(9), "")


다시 select문을 돌려보면 결과가 제대로 나올 것이다

'데이터 다루기 > DB운영(MYSQL)' 카테고리의 다른 글

패턴검색(LIKE, RLIKE, REGEXP)  (0) 2018.08.23
인덱스 관리  (0) 2018.02.14
컬럼 관리  (0) 2018.02.14
스토리지 엔진  (0) 2018.02.13
문자셋  (0) 2018.02.13
블로그 이미지

데이터세상

데이터를 통해 가치를 만들고자 합니다 데이터베이스(DB), 인공지능(AI), 빅데이터와 같이 데이터를 통해 4차산업혁명을 준비하는 블로그가 되고자 합니다

,