Re: Palabras repetidas en un campo varchar

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

In response to

Browse pgsql-es-ayuda by date

  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?