Skip site navigation (1) Skip section navigation (2)

Re: BUSCAR UNA SERIE DE CARACTERES DENTRO DE UN CAMPO DE TEXTO...

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Marcelo Robin <marcelorobin(at)gmail(dot)com>
Cc: Álvaro Hernández <aht(at)nosys(dot)es>, Lista Postgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: BUSCAR UNA SERIE DE CARACTERES DENTRO DE UN CAMPO DE TEXTO...
Date: 2011-05-31 14:25:22
Message-ID: 1306851721-sup-6452@alvh.no-ip.org (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Excerpts from Marcelo Robin's message of mar may 31 08:04:41 -0400 2011:
> Gracias Alvaro, quiere decir que con esa sentencia me buscaría todos los
> registros en los que el campo en que busco arranca con "CRU" sea mayuscula o
> minuscula... pero si la cadena "CRU" yo sé que lo encuentro a partir del
> tercer caracter ?
> es decir, yo se que el "CRU" lo puedo encontrar entre el tercer caracter y
> no más allá de octavo caracter...
> Ejemplo: el CRU puede estar en este rango de caracteres...
> 
> xxxCRUxxxxxxxxxxxxxxxx
> xxxxxxCRUxxxxxxxxxxxxx
> 
> siendo x cualquier caracter, espacio o número...

No creo que puedas usar FTS para este tipo de búsquedas.  En cambio
puedes usar una expresión regular:

WHERE observaciones ~* '^...CRU'

El operador ~* hace que la búsqueda sea insensible a mayúsculas.
http://www.postgresql.org/docs/9.0/static/functions-matching.html#FUNCTIONS-POSIX-REGEXP

Esto es muy lento, porque tiene que recorrer todos los registros y no
hay posibilidad de usar un índice.  Si esto es parte integral del
funcionamiento cotidiano del sistema, deberías considerar rediseñar este
modelo de datos.

-- 
Álvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>

In response to

pgsql-es-ayuda by date

Next:From: felix gonzalesDate: 2011-05-31 14:34:31
Subject: descargar pgpool
Previous:From: Alvaro HerreraDate: 2011-05-31 14:21:30
Subject: Re: BUSCAR UNA SERIE DE CARACTERES DENTRO DE UN CAMPO DE TEXTO...

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group