12.11.08

Where 1=1

Posted in Bases de Datos, Programación at 3:18 pm by Miguel

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.

Rating 4.00 out of 5
[?]

3 Comments »

  1. Firenze said,

    December 12, 2008 at 12:55 pm

    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. Miguel said,

    December 12, 2008 at 1:24 pm

    Gracias Firenze, es muy buena idea.

    Saludos.

  3. carlos acosta said,

    May 24, 2010 at 6:25 pm

    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.

Leave a Comment

Please copy the string 8Pucrl to the field below: