none
Búsqueda en múltiples campos con múltiples parámetros RRS feed

  • Pregunta

  • Hola que tal, tengo que hacer una consulta que la verdad se me está complicando bastante y no se ni por donde arrancar, si bien ya he intentado varias cosas sin el resultado que necesito.

    Tengo un programa donde en un cuadro de texto, se puede ingresar por ejemplo '20  ja    prieto'; cada espacio es que lo que viene luego es un parámetro por el cual buscar, ahora supongamos que se está realizando una búsqueda sobre la tabla de clientes, necesito que se filtré por todo, osea que traiga los registros que en cualquier campo tengan 20, y que de esos traiga cualquier registro que tenga ja y que de esos devuelva cualquier registro que tenga prieto.

    Alguna idea? La verdad me tiene desconcertado, gracias

    domingo, 14 de septiembre de 2014 16:53

Respuestas

  • Hola.

    Eso no es muy buena idea, para el rendimiento además es bastante perjudicial. Para eso construye en cada caso la sentencia en tiempo de ejecución y la mandas al servidor, lo que te aboca al empleo de sql dinámico, una cuestión con sus muchos riesgos y que se recomienda evitar en la medida de lo posible. Pero claro, si quieres que hasta la tabla en la que buscar sea un parámetro, luego hay que buscar el mismo valor en varios campos, en fin, no hay otra manera si partimos de las premisas que comentas. En el fondo, muy poco te separa de ser un editor de consultas lo que tengas en esa caja de texto.

    Aparte, parece que requieres de un tratamiento de pesos en función de los criterios que se cumplan y los que no, algo que perfectamente se puede realizar, pero que no es ni mucho menos trivial.

    De todo lo anterior, me punto de vista sería que definieras con precisión qué es lo que quieres que haga la aplicación (dónde buscar, qué buscar y sobre todo para qué), para restringirlo notablemente.


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.com
    Sígueme en twitter en http://twitter.com/qwalgrande


    sábado, 20 de septiembre de 2014 7:23
    Moderador

Todas las respuestas

  • Eso lo sé, perdón si me exprese mal, quiero hacer algo que sea dinámico, porque no es solo con la tabla clientes, sino con cualquier tabla y con todos sus campos, por ejemplo un SP que le paso como parámetro la tabla en la cual buscar y hasta 10 parámetros más para realizar la búsqueda por cada uno de ellos.

    Ademas supongamos esto

    cust_id     cust_taxNumber      cust_name              cust_apellido
    20                 34353582             javier                    prieto
    25                 34352080             jacinto                   prieto
    33                 34352088             andres                   veliz    


    Me debería devolver el cust_id = 20 y 25 por tener la coincidencia del 20, el JA y el PRIETO, pero no me debería devolver el cust_id = 33 porque solo tiene el 20, pero no las demas coincidencias

    Gracias!


    domingo, 14 de septiembre de 2014 18:12
  • Hola.

    Eso no es muy buena idea, para el rendimiento además es bastante perjudicial. Para eso construye en cada caso la sentencia en tiempo de ejecución y la mandas al servidor, lo que te aboca al empleo de sql dinámico, una cuestión con sus muchos riesgos y que se recomienda evitar en la medida de lo posible. Pero claro, si quieres que hasta la tabla en la que buscar sea un parámetro, luego hay que buscar el mismo valor en varios campos, en fin, no hay otra manera si partimos de las premisas que comentas. En el fondo, muy poco te separa de ser un editor de consultas lo que tengas en esa caja de texto.

    Aparte, parece que requieres de un tratamiento de pesos en función de los criterios que se cumplan y los que no, algo que perfectamente se puede realizar, pero que no es ni mucho menos trivial.

    De todo lo anterior, me punto de vista sería que definieras con precisión qué es lo que quieres que haga la aplicación (dónde buscar, qué buscar y sobre todo para qué), para restringirlo notablemente.


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.com
    Sígueme en twitter en http://twitter.com/qwalgrande


    sábado, 20 de septiembre de 2014 7:23
    Moderador