Where 1=1

Un truco sencillo cuando estemos preparando consultas sql con condiciones dinámicas, en un buscador de elementos con varias condiciones de filtro por ejemplo, es utilizar en la base de la select la condición where 1=1.
Si tomamos como ejemplo la consulta
SELECT CAMPO1, CAMPO2, CAMPO3, CAMPO4
FROM TABLA1
Y quisiéramos añadir dinámicamente condiciones tendrí­amos que comprobar de base si ya tenemos una condición incluida para añadir el prefijo “AND”.
Incluyendo when 1=1 dejamos de lado este problema. Esta condición evalíºa siempre cierto, y tiene un consumo impercetible en el cálculo, y ayuda a la hora de montar las condiciones de forma dinámica, ya que desde la primera concatenación de condiciones podemos partir de un “AND nuevacondicion”.
SELECT CAMPO1, CAMPO2, CAMPO3, CAMPO4
FROM TABLA1
WHERE 1=1 { AND… AND… AND… }
Es un truco un poco tonto, pero a la vez sencillo para dejar un código más limpio.
Saludos.

4 thoughts on “Where 1=1”

  1. También es íºtil utilizar la condición
    WHERE id > 0
    en caso de que la tabla tenga id, claro.
    Así­ de paso, se pueden detectar algunos errores inesperados de programación y asegurar, en parte, que todos los datos sacados el SELECT son “buenos”.

  2. creo que esa tecnica no tiene impacto, de hecho no produce mejor codigo, en particular hay mejores tecnicas para programar el sql. y no limpia el codigo.

  3. Sencillo pero efectivo, a mi si me parece. Hace no mucho tiempo hice un par de consultas que se componian dinamicamente y fue un horror incluir los and y el where cuando fuesen necesarios… veo que es sencilla y efectiva, a mi si me resuelve. Gracias por el Tip! Saludos

Leave a Reply to Miguel Cancel reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.