[英]Compare varchar with char
我試圖弄清楚將varchar
與char
比較時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)
強制轉換為varchar
( character varying
)以測試與'a'::varchar
或'ab'::varchar
相等性,並分別產生TRUE
或FALSE
。
基本上,幾乎沒有什么正當理由,使用character
在所有 。 這是一種遺留類型,已經不再有用。 只需使用text
或varchar
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.