sql >> Database teknologi >  >> RDS >> PostgreSQL

Erstat tegn med strenge med flere tegn

Din serverkodning ser ud til at være UTF8.
Jeg formoder, at din client_encoding stemmer ikke overens, hvilket kan give dig et forkert indtryk af, hvad du har med at gøre. Tjek med:

SHOW client_encoding;   -- in your actual session

Og læs disse relaterede svar:
Kan ikke indsætte tyske tegn i Postgres
Erstat unicode-tegn i PostgreSQL

Resten af ​​værktøjskæden skal også være synkroniseret. Når man for eksempel bruger puTTY, skal man sikre sig, at terminalen er enig med resten:Change settings... Window -> Translation -> Remote character set =UTF-8 .

Hvad angår dit første spørgsmål, har du allerede den bedste løsning. Et par omlyde erstattes bedst med en streng replace() udsagn.

Som du synes allerede at vide, er udskiftninger af enkelttegn mere effektive med (en enkelt) translate() erklæring.

Relateret:



  1. Hent sidste ikke-nul-record i hver kolonne for hver record_id i MySQL

  2. Fejlfinding AlwaysOn – Nogle gange kræver det mange sæt øjne

  3. Symfony3 gemmer hver opdatering i databasen

  4. ORDER BY RAND()-funktionen tager lang tid at udføre i mysql