sql >> Databáze >  >> RDS >> PostgreSQL

Porovnejte varchar s char

Vůbec nejde o chybu.
Odsílání řetězcového literálu 'ab ' na character , získáte toto:

a

Podle dokumentace:

character bez specifikátoru délky je ekvivalentní character(1) .

'a'::character(1) bude poté vynucen na varchar (character varying ) pro testování rovnosti s 'a'::varchar nebo 'ab'::varchar a výsledkem je TRUE nebo FALSE respektive.

V podstatě neexistuje žádný dobrý důvod, proč používat character vůbec . Je to starší typ, který přežil svou užitečnost. Stačí použít text nebo varchar .

  • Nějaké nevýhody používání datového typu "text" pro ukládání řetězců?



  1. Funkce s proměnným počtem vstupních parametrů

  2. Upozornění a upozornění ze SkySQL

  3. Jak mohu urychlit dotaz MySQL s velkým posunem v klauzuli LIMIT?

  4. Hostování MySQL v Azure, plně spravovaná cloudová databázová služba se spouští na ScaleGrid