簡體   English   中英

比較varchar和char

[英]Compare varchar with char

我試圖弄清楚將varcharchar比較時Postgres做了什么。

這是我的測試之一:

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

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

在我看來,這似乎是個錯誤。 有人知道這是怎么回事嗎? 關於這個主題有好的文件嗎?

根本不是錯誤。
將字符串文字'ab 'character ,這是您得到的:

a

每個文檔:

character而不長度說明等同於character(1)

然后將'a'::character(1)強制轉換為varcharcharacter varying )以測試與'a'::varchar'ab'::varchar相等性,並分別產生TRUEFALSE

基本上,幾乎沒有什么正當理由,使用character 在所有 這是一種遺留類型,已經不再有用。 只需使用textvarchar

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM