Se puede realizar en una sola consulta sql

Buscar registros con todas las combinaciones posibles de los parametros.
de Esta imagen.
No estoy entendiendo como hacer el query

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Query

 

... si, si se puede
(puedes reemplzar el AND por OR

y que pasa cuando

cuando a='' y b=''
Ahi necesito que me filtre igual todo pero sin los parametros de a y b?

asi lo tengo

 
pero cuando se omita el tipo o la variedad debe traerme todos los registros, de todas las variedades y todos los tipos.

¿Se debe hacer en consultas separadas eso es la duda que me ha quitado todo el día

Pues debes de hacer una

Pues debes de hacer una validación para no poner una condición vacía al construir tu query, que utilizas para consultar datos?

 

y así. EL 1=1 es para que puedas usar el AND cómodamente en caso de que aparezca un registro

@java.daba.doo

A que te refieres.
¿que utilizas para consultar datos?

Como le haces pa' consultar?

Pus si, quizas usas algun framework, queries directas sin/con prepare statement, tu propio ORM o como le haces para obtener los resultados de una consulta... a eso me refiero...

prepare statement

Uso prepare statement directo

ah pues mira, si te sirvió (creo)

ah pues mira, si te sircio mi ejemplo (me imagino), para poner los parametros podrias hacerle asi:

 

No voy insertar datos

Solo a recuperar, aunque de todas formas queda anotado en el libro de preguntas y respuestas :)
Gracias @java.daba.doo

Imagen de ezamudio

sólo falta lista

La solución de java.daba.doo es buena, solamente falta una lista con los argumentos que vas a agregar al final. Cada que le pagas algo al WHERE, guardas lo que irá en ese parámetro en una lista, para al final agregarle eso al PreparedStatement. Si encapsulas todo eso en un objeto es algo así:

 

Está muy rudimentario pero pues con eso puedes hacer algo así:

 

Lo anterior te puede regresar 4 posibles queries:

 

Si mal no recuerdo, iBatis tiene una parte que funciona similar a eso, puedes definir un query y luego las distintas partes del WHERE y el framework sabe cómo pegar esas partes si vienen los datos, y puede usar OR en vez de AND, etc.

tengo algo asi por ahora