Hola Rubén, Muy buen aporte me va a ir genial Gracias El 21/01/2013 14:34, "Fernando Hevia" <[email protected]> escribió:
> > > 2013/1/20 Ruben Fitó <[email protected]> > >> Gracias por las respuestas, >> >> En primer lugar, comentaros que he conseguido obtener el producto a >> través del producto_id. >> >> SELECT *tipo_producto* FROM *tabla_productos_por_cliente* WHERE * >> producto_id*~('^'||*tipo_producto*::TEXT) ORDER BY LENGTH(*tipo_producto*) >> DESC LIMIT 1; >> >> Con esta consulta me aseguro coger el tipo_producto que coincida con más >> "dígitos" de producto_id. >> >> > Hola. El algoritmo que aplicaste para buscar el producto se llama *best > matching* y se utiliza mucho en el dominio de la telefonía para > identificar a qué localidades pertenecen los números discados. En > PostgreSQL existe el módulo contrib PREFIX construido específicamente para > simplificar y acelerar este tipo de consultas: > https://github.com/dimitri/prefix > > Te servirá en caso de que necesites agilizar las consultas anteriores. El > uso de prefix es hasta 4 veces más rápido que la consulta que hiciste. Si > la performance no es un problema, probablemente no convenga incorporarlo. > Si bien es muy simple de hacerlo si requerirá que redefinas el tipo de dato > del campo código. > > En fin, pensé podrían interesarte estos datos. > > Saludos, > Fernando. > > >
