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
'DB이야기 > MYSQL' 카테고리의 다른 글
mysql과 오라클의 한글 저장 byte (0) | 2023.03.29 |
---|---|
조인으로 테이블 row 삭제하기 (0) | 2023.01.16 |
[mysql, oracle] 테이블 컬럼명 변경 (0) | 2022.12.21 |
mysql의 샘플 테이블 생성 (0) | 2022.12.20 |
글자가 짤린 상태로 저장 (0) | 2022.12.19 |