Tema: Like???
Ver Mensaje Individual
  #10 (permalink)  
Antiguo 07/06/2008, 20:54
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Like???

El SQL no acepta comodines en el WHERE, y ese es parte de tu problema, simplemente porque no son parte del modelo del álgebra relacional, que es en definitiva de donde nacen los principios de las bases de datos.
No los admite porque de lo contrario los algoritmos que pudieran realizar tal consulta serían infinitos, a causa de las eventuales combinatorias de tales consultas.
Imaginate que un WHERE * LIKE '%xxxxx%' que abarcase todos los campos, además de toparse con conflictos de tipos de datos incompatibles, si la misma abarcase JOINS de generación dinámica los resultados tenderían al infinito.
Insisto: Si el modelo de datos de tu sistema es conocido, es también conocido el conjunto de campos que en diversas tablas debería poderse consultar para buscar ese dato. Ergo, deberías poder crear sentencias preparadas que acotasen las búsquedas a los campos realmente importantes.
Si el modelo de datos del sistema no es conocido, o el sistema es cambiante, entonces no hay técnica de programación o de bases de datos que sea aplicable.
Me sigue pareciendo que estás buscando una solución imposible o el problema está mal analizado.

De cualquier forma, mi sugerencia es que analices la posibilidad de implementar un store procedure con sentencias preparadas (13.7. Sintaxis SQL de sentencias preparadas), tal vez te sirva para salir del atolladero.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)