[Pgsql-ayuda] Seleccion personalizada de registros

Alvaro Herrera alvherre@dcc.uchile.cl
Mon, 29 Dec 2003 15:13:53 -0300


On Mon, Dec 29, 2003 at 02:41:46PM -0300, Martin Marques wrote:
> On Mon, 29 Dec 2003, Josué Maldonado wrote:
>
> > El problema que tengo es que esta seleccion puede ser adyacente, es
> > decir que el usuario puede seleccionar 5 items por codigo otros 15 por
> > descripcion y asi sucesivamente, cuando haya terminado de seleccionar
> > los items a traer entonces se ejecuta la consulta global sobre la tabla
> > items.
[...]
> > Alguien sabe alguna forma de manejar este tipo de consulta de la manera
> > mas apropiada
> 
> Con OR.
> 
> SELECT * FROM item WHERE codigo IN (a,b,c) OR proveedor IN () OR ...

El problema es que si no tienes indices por ej. en el campo de proveedor
la consulta puede hacerse complicada.  Agregar esos indices solo para
satisfacer esta consulta puede ser demasiado oneroso.

Yo creo que guardar los IDs primarios de cada elemento seleccionado es
mas conveniente, si ya los tienes en el formulario de seleccion.  Si en
una tabla temporal o en un arreglo en el lenguaje procedural que estes
usando, es un asunto de implementacion y no creo que tenga major
influencia.

Ahora, si la idea no es seleccionarlos de a uno sino como criterios
generales, entonces vas a tener que hacer lo que dice Martín, me parece.
(y agregar los indices que corresponda).

-- 
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"Uno combate cuando es necesario... ¡no cuando está de humor!
El humor es para el ganado, o para hacer el amor, o para tocar el
baliset.  No para combatir."  (Gurney Halleck)