Re: how to ignore accents?

Поиск
Список
Период
Сортировка
От Michael Fuhr
Тема Re: how to ignore accents?
Дата
Msg-id 20050402014113.GA9031@winnie.fuhr.org
обсуждение исходный текст
Ответ на Re: how to ignore accents?  (Ennio-Sr <nasr.laili@tin.it>)
Ответы Re: how to ignore accents?  (Ennio-Sr <nasr.laili@tin.it>)
Список pgsql-novice
On Fri, Apr 01, 2005 at 08:36:35PM +0200, Ennio-Sr wrote:
>
>  CREATE FUNCTION unaccent(text) RETURNS text AS '
>   BEGIN
>       RETURN translate(&parola, "\342\347\350\351\352\364\373", "aceeeou");
>                        ^^^^^^^
>   END;
>   ' LANGUAGE plpgsql IMMUTABLE STRICT;
>
> ^^^^ [I also tried with field, &field, parola, (parola), [parameter
>       "&field?"], $1, arg1 and similar]

See the PL/pgSQL documentation to get a better idea of the syntax:

http://www.postgresql.org/docs/7.4/interactive/plpgsql.html

Let's get the basic functionality working before messing with
accented characters.  Try this:

CREATE FUNCTION unaccent(text) RETURNS text AS '
BEGIN
    RETURN translate($1, ''ABC'', ''abc'');
END;
' LANGUAGE plpgsql IMMUTABLE STRICT;

CREATE TABLE parole (
    id      serial PRIMARY KEY,
    parola  text NOT NULL
);

INSERT INTO parole (parola) VALUES ('AAA');
INSERT INTO parole (parola) VALUES ('BBB');
INSERT INTO parole (parola) VALUES ('CCC');

SELECT unaccent(parola) FROM parole;
 unaccent
----------
 aaa
 bbb
 ccc
(3 rows)

When you get that working, then you can modify the translate()
strings to convert accented characters to their unaccented
equivalents.

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/

В списке pgsql-novice по дате отправления:

Предыдущее
От: Michael Fuhr
Дата:
Сообщение: Re: plpgsql question - simple I would have thought
Следующее
От: "Morgan Kita"
Дата:
Сообщение: Major problem with custom data type