From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Oscar Cano <oscarcanorodriguez(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Palabras repetidas en un campo varchar |
Date: | 2008-01-30 00:50:18 |
Message-ID: | 20080130005017.GJ27546@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Oscar Cano escribió:
> Quiero hacer un query que me regreso aquellos registros que contengan
> palabras repetidas
>
> Por ejemplo por error hay registros que tienen dos veces el nombre "oscar
> oscar cano rodriguez" o el apellido "oscar cano cano rodriguez"
Una expresion regular con una "backreference", algo asi:
alvherre=# select * from rep where a ~ e'[[:<:]]([[:alnum:]]+)[[:>:]].*\\1';
a
------------------
oscar oscar cano
oscar cano cano
(2 filas)
alvherre=# create table rep (a text);
inCREATE TABLE
alvherre=# insert into rep values ('oscar oscar cano');
INSERT 0 1
alvherre=# insert into rep values ('oscar cano cano');
INSERT 0 1
alvherre=# insert into rep values ('oscar cano');
INSERT 0 1
Ejercicio: ¿por que estan ahi los [[:<:]] y [[:>:]] ?
--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
From | Date | Subject | |
---|---|---|---|
Next Message | Ernesto Quiñones | 2008-01-30 00:58:41 | Re: es posible acelerar un update? |
Previous Message | Alvaro Herrera | 2008-01-30 00:46:27 | Re: es posible acelerar un update? |