본문 바로가기

DB이야기/MYSQL

SPACE TRIM후 데이터 비교

728x90

오라클에서는 컬럼에 space를 입력한 후 다른 컬럼과 비교시 space로 값을 비교한다.
mysql에서는 컬럼간 비교할때는 컬럼 길이를 큰 기준으로 하여 작은 컬럼에 space를 추가하여 비교한다.
또한 컬럼값 비교할때는 space를 trim한 후 비교하여 조심할 필요가 있다.
sql_mode에서 ignore_space를 제거할지, strict_mode를 제거할지를 mysql 사용전에 결정하여야 한다.
테스트 예제
create table enc_test(c1 varchar(100), c2 varchar(100));
create table enc_test1(c1 varchar(100), c2 varchar(100));
insert into enc_test(c1, c2) values('x','a');
insert into enc_test1(c1,c2) values('x',' bbbbb'); b는 space
insert into enc_test(c1,c2) values('x','y');
insert into enc_test1(c1,c2) values('x','y ');
commit;
select t2.*, length(t2.c1), length(t2.c2)
from enc_test t1, enc_test1 t2
where 1=1
and t1.c2=t2.c2
and t1.c2='y'
;
결과를 확인하기 바란단.
참고로MODE를 확인하려면
SELECT @@SQL_MODE, @@GLOBAL.SQL_MODE;

728x90