From: | Hellmuth Vargas <hivs77(at)gmail(dot)com> |
---|---|
To: | Herman Estaban <hermanestaban(at)gmail(dot)com> |
Cc: | FORO POSTGRES <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: LIKE a campo integer |
Date: | 2016-06-21 21:57:01 |
Message-ID: | CAN3Qy4reagvyL2+aJPEo4ok-mqDgJG=BhiE5h3dByNmfnt3Sxw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola Herman
En ese caso, si tiene bastantes registros, la distribución es mas o menos
heterogénea y la consulta se trata de prefijo (empieza por) podría probar:
1.Crear indice sobre la versión texto de la columna entera, ejemplo:
CREATE INDEX idx_indice_patron ON tabla (CAST(ID_TIP_REG AS TEXT)
text_pattern_ops);
2. verificar el funcionamiento:
WHERE CAST(ID_TIP_REG AS TEXT) LIKE param;
El 21 de junio de 2016, 16:36, Herman Estaban<hermanestaban(at)gmail(dot)com>
escribió:
> Hellmuth gracias por la respuesta.
>
> Necesito el LIKE para devolver todo los codigos y tambien elegir un codigo
> especifico.
>
> WHERE CAST(ID_TIP_REG AS CHAR) LIKE param;
>
> param : Que puede ser '%' todos o cualquiera de estos codigos 1, 2, 3, 4,
> 5, 6, 7, 8, 9, 10, 11, 12, 13, 99.
>
> Como ya habia mencionado los campos primary key y foreign key son de tipo
> de datos INTEGER o BIGINT, tengo tambien campos indicadores que son de
> tipo CHAR(1) 'A' = ANULADO, 'V' = VIGENTE, '0'= INACTIVO, '1' = INACTIVO
> por dar unos ejemplos, deberia trabajar estos con tipo de dato INTEGER,
> seria mas eficiente, ya que trabajo los campos primary key y foreign key
> porque INTEGER es mas rapido en las busquedas que usando CHAR.
>
> Saludos.
>
> El mar., 21 jun. 2016 a las 16:16, Hellmuth Vargas (<hivs77(at)gmail(dot)com>)
> escribió:
>
>> Hola Herman
>>
>>
>> Pensaría que tiene algo como:
>>
>> dominio de ID_TIP_REG:
>> de 100 a 199 -> categoria1
>> de 200 a 299 -> categoria2
>> de 300 a 399 -> categoria3
>> ....
>>
>>
>> Si es así no debería utilizar LIKE sin mas bien un BETWEEN
>>
>>
>> WHERE ID_TIP_REG BETWEEN <rango inferior categoria> AND <rango superior
>> categoria>
>>
>>
>>
>>
>> El 21 de junio de 2016, 16:01, Herman Estaban<hermanestaban(at)gmail(dot)com>
>> escribió:
>>
>>> Buenas tardes, todos los campos primary key y foreign key de mis tablas
>>> son de tipo de datos INTEGER y BIGINT.
>>>
>>> Y tengo la necesidad de hacer un LIKE a un campo de tipo INTEGER en un
>>> SELECT.
>>>
>>> Que tan eficiente es hacer esto:
>>>
>>> WHERE CAST(ID_TIP_REG AS CHAR) LIKE '1%'
>>>
>>> LIKE es mas rapido con CHAR, VARCHAR que con INTEGER?
>>>
>>> Espero sus comentarios.
>>>
>>> Saludos.
>>>
>>
>>
>>
>> --
>> Cordialmente,
>>
>> Ing. Hellmuth I. Vargas S.
>> Esp. Telemática y Negocios por Internet
>> Oracle Database 10g Administrator Certified Associate
>> EnterpriseDB Certified PostgreSQL 9.3 Associate
>>
>>
--
Cordialmente,
Ing. Hellmuth I. Vargas S.
Esp. Telemática y Negocios por Internet
Oracle Database 10g Administrator Certified Associate
EnterpriseDB Certified PostgreSQL 9.3 Associate
From | Date | Subject | |
---|---|---|---|
Next Message | Crispin T. | 2016-06-21 22:27:44 | Re: LIKE a campo integer |
Previous Message | Herman Estaban | 2016-06-21 21:36:41 | Re: LIKE a campo integer |