본문 바로가기

MySQL

Trim 함수를 써서 공백을 모두 제거하기

MySQL의 Trim 함수를 쓰면 문자의 양옆의 공백을 제거해줍니다.
그런데... Column의 타입이 varchar이면 trim이 제대로 적용되지 않는 현상이 있었습니다(탭, 여러 스페이스 등..)

구글링해보니..!
타입 변환을 통해 trim처리를 하면 제대로 제거되는 것을 확인했습니다.

샘플

TRIM(Char(9) FROM 컬럼명)
- 이 방식을 쓰게되면 해당 컬럼을 char로 바꾼 뒤 trim을 하기 때문에 공백 문자들이 모두 제거됩니다.
SELECT * FROM Foo WHERE Bar IS NOT NULL AND TRIM(Char(9) FROM Bar) <> ''  LIMIT 10;
- 뭐 이런식으로 쓸 수 있겠네요. (null도 아니고 공백도 아닌 녀석들만 조회)
- 샘플 치고는 나쁜 쿼리네요.. 모두 부정 조건이니 인덱스를 타지 않겠네요 ㅠ.ㅠ

- 참조 : http://stackoverflow.com/questions/13979169/how-to-remove-tabs-at-start-and-end-of-varchar-field-in-mysql
- 참조에는 trim하고 또 trim하는데 굳이 그럴필요는 없어보입니다.