복붙노트

[SQL] 문자와 비교 VARCHAR

SQL

문자와 비교 VARCHAR

나는 문자로 VARCHAR를 비교할 때 포스트 그레스가 무엇을 알아 내려고 노력하고있다.

여기 내 테스트 중 하나입니다 :

test=# select 'a'::character varying = 'a     '::character;
?column?
----------
 t

test=# select 'ab'::character varying = 'ab     '::character;
?column?
----------
 f

이것은 나에게 벌레처럼 보인다. 사람이 여기에 무슨 일이 일어나고 있는지 알고 있나요? 이 주제에 대한이 좋은 문서가 있습니까?

해결법

  1. ==============================

    1.전혀하지 버그. 문자 스트링 리터럴 'AB'를 주조, 이것은 당신이 무엇을 얻을 수 있습니다 :

    전혀하지 버그. 문자 스트링 리터럴 'AB'를 주조, 이것은 당신이 무엇을 얻을 수 있습니다 :

    a
    

    문서 별 :

    'A': 문자 (1)을 "A":: VARCHAR 또는 'AB':: VARCHAR와 동일한 지 어떤지를 시험 VARCHAR (문자 VARYING)로 강제 될 각각 TRUE 또는 FALSE 수득한다.

    기본적으로, 전혀 문자를 사용하는 좋은 이유가 거의 없다. 그것은 그것의 유용성을 오래 살았다 레거시 유형입니다. 그냥 텍스트 또는 VARCHAR를 사용합니다.

  2. from https://stackoverflow.com/questions/17333196/compare-varchar-with-char by cc-by-sa and MIT license