FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Búsqueda aproximada en un campo
Hola.
Tengo una tabla con un campo de tipo varchar(8), conteniendo valores que son solo números, por ejemplo '4106293'. Estoy buscando una función que permita realizar una búsqueda (usando Select ...from...) aproximada en ese campo, por ejemplo si cambia un único caracter, en este caso si se ingresa 4106793 (el usuario se equivocó en un caracter, tipeando 7 en lugar de 2) y que lo encuentre igual. No se si se entiende lo que estoy planteando. Saludos cordiales, Ramón
__________________
Lazarus Codetyphon : Desarrollo de aplicaciones Object Pascal, libre y multiplataforma. Última edición por rretamar fecha: 11-03-2017 a las 05:05:54. |
#2
|
||||
|
||||
No estoy seguro de si la BD que estes usando implemente algoritmos que comparan strings por distancia
Si lo podes implementar bajo codigo Delphi, quiza esto te sirva de ayuda: DelphiStringDistance Si lo queres implementar por SQL, tendrias que leer sobre este tipo de algoritmos y ver si tu DB tiene algo similar o sino implementar una UDF o un Stored Procedure La idea estos algoritmos es que comparas dos string, eso te devuelve un entero, que es la "distancia". La distancia es la cantidad de operaciones que se requieren para que el string A se convierta en string B. Distintos algoritmos calcularan diferentes distancias, pues asignan a las distintas operaciones (agregar/quitar/intercambiar caracter) un "peso" distinto Si ves estos test creo que queda mas claro de lo que hablo. Por ejemplo, usando el Algoritmo de Levenshtein, la comparacion "Casa" vs "Calle" da resultado 3. En tu caso deberias listar solo los elementos con una distancia menor o igual a 1, esto permite una "tolerancia" de un caracter Última edición por AgustinOrtu fecha: 11-03-2017 a las 05:31:36. |
#3
|
||||
|
||||
Gracias por responder.
La base de datos de MYSQL...sé cómo hacerlo en Lazarus, pero la idea es implementarlo directamente en SQL, usando la sintaxis del motor. No encontré una función de búsqueda de cadenas de ese tipo.
__________________
Lazarus Codetyphon : Desarrollo de aplicaciones Object Pascal, libre y multiplataforma. |
#4
|
||||
|
||||
Y ¿cómo lo hace en Lazarus?
__________________
"constructive mind, destructive thoughts" |
#6
|
|||
|
|||
Cita:
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Consulta Aproximada | ASUNCION | SQL | 9 | 31-10-2012 20:20:37 |
busqueda aproximada Zeos | eduardo s. | Varios | 2 | 17-09-2008 13:50:45 |
campo de busqueda con otro campo | josi | Varios | 1 | 04-06-2008 00:53:07 |
Escoger fecha Aproximada | Carlex | SQL | 3 | 17-05-2006 14:56:55 |
Mejor suma aproximada | Lepe | Varios | 15 | 16-01-2006 16:03:28 |
|