From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | David Prieto <davidp(at)sgth(dot)es> |
Cc: | 'Xavier Vidal' <xvpxvp(at)menta(dot)net>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Ordenación con caracteres latinos |
Date: | 2005-09-28 13:02:11 |
Message-ID: | 20050928130211.GA5093@surnet.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola,
Javier Vidal escribio:
> Perdon, ha sido un error mio de copias y pegar
>
> El ejemplo es este:
>
> Primer apellido
> ------------------
> Gomez
> Guadix
> Gómez
El collate parece ser ASCII. Aca con tu ejemplo, en una base de datos
que realmente es Latin-1, tengo esto:
alvherre=# create table persona (apellido text);
inseCREATE TABLE
alvherre=# insert into persona values ('Gomez');
INSERT 0 1
alvherre=# insert into persona values ('Guadix');
INSERT 0 1
alvherre=# insert into persona values ('Gómez');
INSERT 0 1
alvherre=# select * from persona order by apellido;
apellido
----------
Gomez
Gómez
Guadix
(3 filas)
David Prieto escribio:
> Supongo que la ordenación la haces con "select... Order by..." (es
> decir, que el que ordena es el postgresql) y no recoges todos los datos
> y los ordenas luego desde PHP, ¿verdad?
>
> Tengo una base de datos creada con "createdb -E LATIN1". Por probar, he
> creado una tabla e insertado varios valores y me sale:
>
> select * from nombres order by nombre;
> nombre
> ----------
> García
> Gómez
> Gomez
> Gonzalez
>
> Es decir: PARECE que sale correctamente (sólo que "ó" va antes de "o").
Aca parece que tu problema es que la base de datos debe ser Latin-1 y el
terminal debe ser utf-8, o lo contrario, o alguna ensalada rara de
encodings (o el terminal es latin-1 pero las variables de locale son
utf-8, o al reves). Observa mi ejemplo mas arriba, que ordena la o
correctamente con respecto a la ó.
Y sobre todo observa este otro ejemplo:
> select * from nombres order by nombre;
> nombre
> ---------------
> García
> Gómez
> Gómez Alonso
> Gómez Pérez
> Gomez
> Gomez Alvarez
> Gonzalez
> (7 filas)
alvherre=# select * from persona order by apellido;
apellido
---------------
García
Gomez
Gómez
Gómez Alonso
Gómez Alvarez
Gómez Pérez
González
Guadix
(8 filas)
Yo diria que los ambientes de ambos estan mal configurados.
--
Alvaro Herrera http://www.PlanetPostgreSQL.org
"Para tener más hay que desear menos"
From | Date | Subject | |
---|---|---|---|
Next Message | Alfredo Rico | 2005-09-28 13:02:33 | Re: PReunta sobre esquemas |
Previous Message | Johan Petit | 2005-09-28 12:56:51 | Clave de postgres |